为什么@Deprecated在这里不起作用?

时间:2012-11-23 15:09:54

标签: java annotations

我有一个像这样的java程序:

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

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

为什么当我尝试使用javac进行编译时,它不会给我任何警告。

1 个答案:

答案 0 :(得分:10)

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

它说

  

使用注释会导致Java编译器在使用不推荐使用的类,方法或字段时生成警告。如果不推荐的编译单元使用不推荐使用的类,方法或字段,则编译器会禁止弃用警告。这使您可以构建旧API而不会生成警告。

如果您编译了类,则会看到您使用的是已弃用的方法。问题是当您编译使用不推荐使用的方法的类时。