술어
공식 Sun 용어집에서 :
deprecation : 더 이상 권장되지 않으며 향후 버전에서 더 이상 존재하지 않을 수있는 클래스, 인터페이스, 생성자, 메소드 또는 필드를 나타냅니다.
사용 방법과 사용 중단 시점에 이르기까지 :
"자기 폐지 유머"또는 화자의 중요성을 최소화하는 유머라는 용어를 들어 보셨을 것입니다. 더 이상 사용되지 않는 클래스 또는 메소드는 이와 같습니다. 더 이상 중요하지 않습니다. 실제로 중요하지 않으므로 더 이상 사용하지 않아야합니다. 대체되지 않았으며 앞으로는 더 이상 존재하지 않을 수 있습니다.
@Deprecated
주석이 한 단계 더 가서 위험을 경고 :
주석 @Deprecated
이 달린 프로그램 요소 는 일반적으로 위험 하거나 더 나은 대안이 있기 때문에 프로그래머가 사용하지 않는 것입니다 .
참고 문헌
옳고 그름?
더 이상 사용되지 않는 방법을 사용하는 것이 옳고 그른지에 대한 질문은 개별적으로 검사해야합니다. Effective Java 2nd Edition 에서 "deprecated" 라는 단어가 나오는 모든 인용문 은 다음과 같습니다 .
항목 7 : 피니셔를 피하십시오 : 피니셔를 보장한다고 주장하는 유일한 방법 System.runFinalizersOnExit
은 악한 쌍둥이 Runtime.runFinalizersOnExit
입니다. 이 방법은 치명적인 결함이 있으며 더 이상 사용되지 않습니다.
항목 66 : 변경 가능한 공유 데이터에 대한 액세스 동기화 : 라이브러리가 Thread.stop
메소드를 제공 하지만이 메소드는 본질적으로 안전하지 않기 때문에 더 이상 사용되지 않습니다. 사용하면 데이터가 손상 될 수 있습니다.
항목 70 : 문서 스레드 안전성 :이 System.runFinalizersOnExit
메소드는 스레드에 적대적이며 더 이상 사용되지 않습니다.
항목 73 : 쓰레드 그룹 피하기 : 특정 Thread
프리미티브를 한 번에 여러 쓰레드에 적용 할 수 있습니다 . 이러한 기본 요소 중 일부는 더 이상 사용되지 않으며 나머지는 자주 사용되지 않습니다. [...] 스레드 그룹은 더 이상 사용되지 않습니다.
따라서 적어도 위의 모든 방법을 사용하면 적어도 Josh Bloch에 따르면이 방법을 사용하는 것은 분명히 잘못되었습니다.
다른 방법을 사용하면 문제를 개별적으로 고려하고 더 이상 사용되지 않는 이유 를 이해해야 하지만 일반적으로 더 이상 사용하지 않기로 한 결정이 정당화되면 계속해서 사용하는 것이 옳은 것보다 잘못되는 경향이 있습니다.
관련 질문
1955 Volkswagen Beetle
제공되는 경우에도Corvette Stingray
무료로 '계속'하시겠습니까 ? (0 :