表示在编译时,在带有注解的元素以及该元素中包含的所有元素中应忽略的警告。
@SuppressWarnings
注解接口适用于所有声明上下文,因此@SuppressWarnings
注解可以用于任何元素。作为一种风格问题,程序员应该始终在最有效的最深层嵌套元素上使用此注解。例如,如果你想在特定方法中忽略警告,你应该注解该方法而不是其所在的类。
在给定元素中忽略的警告集是所有包含元素中忽略的警告的并集。例如,如果你注解一个类来忽略一个警告,并在该类的一个方法中注解来忽略另一个警告,那么这两个警告都将在该方法中被忽略。但是,请注意,如果在一个module-info
文件中忽略了一个警告,那么这个忽略仅适用于该文件内的元素,而不适用于模块内包含的类型。同样地,如果在一个package-info
文件中忽略了一个警告,那么这个忽略仅适用于该文件内的元素,而不适用于包内包含的类型。
Java编译器必须识别Java语言规范(JLS 9.6.4.5节)中定义的所有类型的警告,这些警告包括:
- 未检查的警告,由字符串“
unchecked
”指定。 - 弃用警告,由字符串“
deprecation
”指定。 - 移除警告,由字符串“
removal
”指定。 - 预览警告,由字符串“
preview
”指定。
例如:
@SuppressWarnings("removal")
public static boolean privilegedGetProperty(String theProp) {
if (System.getSecurityManager() == null) {
return Boolean.getBoolean(theProp);
} else {
return AccessController.doPrivileged(
new GetBooleanAction(theProp));
}
}