声明在注解的元素上编译警告应该被抑制(在被注解的元素里的所有程序元素也一样)。注意被抑制的警告集是其包含元素抑制的警告的超级。例如,如果你注解一个类来抑制一个警告并且注解类中的一个方法来抑制另一个警告,那么两个警告在方法上都会被抑制。
这种风格带来的麻烦,程序员应该在最深的嵌套层次(最有效的地方)来使用此注解。如果你想在一个特别的方法上抑制一个警告,你应该在方法上标注注解而不是在他的类上。
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings{
/*
在注解的元素上应该被抑制的编译警告集。重复的名字是允许的。第二个和连续出现的名字会被忽略。出现
不被识别的警告名字不是一个错误:编译器一定要忽略任何他们不识别的警告名。然而,他们是有权利发出一个警告的如果一个注解
包含了他们不识别的警告名
"unchecked"字符串用来抑制未检查的警告。编译器的提供方应该给出他们支持的额外与此注解协作的警告名。
不鼓励相同的名字协作在多个编译器上。
*/
String[] value();
警告 | 说明 |
---|---|
unused | 抑制相关没有使用的代码 |
all | 抑制所有的警告 |