用語
公式のSun用語集から:
deprecation:推奨されなくなったクラス、インターフェース、コンストラクター、メソッド、またはフィールドを指し、将来のバージョンでは存在しなくなる可能性があります。
ガイドを非推奨にする方法と時期から:
「自己批判的なユーモア」という言葉、または話者の重要性を最小限に抑えるユーモアを聞いたことがあるかもしれません。非推奨のクラスまたはメソッドはそのようなものです。それはもはや重要ではありません。実際には重要ではないので、置き換えられて将来存在しなくなる可能性があるため、今後は使用しないでください。
@Deprecated
注釈は、さらなるステップを行って、危険を警告します:
注釈@Deprecated
が付けられたプログラム要素は、通常は危険であるため、またはより良い代替策が存在するために、プログラマーが使用を控える要素です。
参考文献
正しいか間違っていますか?
非推奨のメソッドを使用することが正しいか間違っているかという問題は、個別に検討する必要があります。ここにあるすべての単語を引用符「非推奨」に表示され効果的なJavaの第2版は:
項目7:ファイナライザを回避する:ファイナライゼーションを保証すると主張する唯一の方法はSystem.runFinalizersOnExit
、その邪悪な双子Runtime.runFinalizersOnExit
です。これらのメソッドには致命的な欠陥があり、非推奨になっています。
項目66:共有の可変データへのアクセスを同期する:ライブラリはThread.stop
メソッドを提供しますが、このメソッドは本質的に安全ではないため、ずっと前に非推奨になりました。使用するとデータが破損する可能性があります。
項目70:スレッドの安全性の文書化:System.runFinalizersOnExit
メソッドはスレッドに敵対的であり、推奨されていません。
項目73:スレッドグループの回避:特定のThread
プリミティブを一連のスレッドに一度に適用できます。これらのプリミティブのいくつかは非推奨になり、残りはほとんど使用されません。[...]スレッドグループは廃止されました。
したがって、少なくともJosh Blochによれば、少なくとも上記のすべての方法で、これらを使用することは明らかに間違っています。
他の方法では、問題を個別に検討し、なぜ非難されたのかを理解する必要がありますが、一般的に言えば、非推奨にする決定が正当化されると、問題を継続して使用するよりも、間違った方に傾く傾向があります。
関連する質問
1955 Volkswagen Beetle
提供されても、運転を続けますCorvette Stingray
か?(0: