没有使用过时的注释元素的编译器警告

时间:2019-02-11 14:50:57

标签: java

我只是使用@Deprecated批注将其中一个批注的某些元素标记为过时,就像这样:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface MyAnnotation {
    @Deprecated
    String deprecatedElement() default "";

    String anotherElement() default "";
}

然后我想到,在另一个类中使用上述批注时,java编译器(我目前使用1.8.0_101)没有发出弃用警告,

public class MyAnnotationUser {

    @MyAnnotation(deprecatedElement = "xyz")
    private Object myAnnotatedObj;

    // ...
}

两个类是否在同一个程序包中这一事实不会更改任何内容。编译时我也尝试了-Xlint:deprecation选项,但没有任何效果。

有人知道为什么不通知不赞成使用此已弃用程序元素,或者您如何针对此用例启用弃用警告?

非常感谢。

PS:我的Eclipse IDE 4.6.3似乎至少检测到不推荐使用的注解元素,因为该元素在编辑器中被简单划掉了,但是也没有发出任何进一步的警告

0 个答案:

没有答案