根据Java tutorial on Oracle,如果使用标记为@Deprecated注释的弃用方法,则编译器应在编译时发出警告。但是使用以下代码示例,我在控制台中没有收到任何警告。
使用的Java版本:1.8.0_112
请告诉我这里可能缺少什么。 感谢。
public class PreDefinedAnnotationTypesTest {
/**
* This method is deprecated.
* @deprecated
*/
@Deprecated
public void m1(){
}
public static void main(String[] args) {
PreDefinedAnnotationTypesTest obj = new PreDefinedAnnotationTypesTest();
obj.m1();
}
}
答案 0 :(得分:4)
如果不推荐使用的项目,编译器会禁止弃用警告 在一个实体中使用,该实体本身已被弃用或
is used within the same outermost class
或在注释的实体中使用 抑制警告。
因此,您的函数在声明它的同一个类中使用,只是尝试在其他类中使用。
在下图中,wontShowWarning
函数不会生成任何警告,但show()
功能将来自另一个类。
API设计可以为自己设置不同的规则,因为假设最外层的类将根据新设计进行修改,因此这只是其他类的指示
答案 1 :(得分:0)