2

次のようなJavaプログラムがあります。

public class Demo {
        /**
         * @deprecated use of func is discouraged.
         */
        @Deprecated
        static void func() {}

        public static void main(String[] args){
                func();
        }
}

を使用してコンパイルしようとするとjavac、警告が表示されないのはなぜですか。

4

1 に答える 1

10

http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/deprecation/deprecation.html

それは言う

注釈を使用すると、非推奨のクラス、メソッド、またはフィールドが使用されたときに Java コンパイラが警告を生成します。非推奨のコンパイル単位が非推奨のクラス、メソッド、またはフィールドを使用している場合、コンパイラは非推奨の警告を抑制します。これにより、警告を生成せずにレガシー API を構築できます。

クラスをコンパイルすると、非推奨のメソッドを使用していることがわかります。問題は、非推奨のメソッドを使用するクラスをコンパイルする場合です。

于 2012-11-23T15:12:39.903 に答える