我只是使用@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似乎至少检测到不推荐使用的注解元素,因为该元素在编辑器中被简单划掉了,但是也没有发出任何进一步的警告