Module java.base
Package java.lang

Annotation Interface SuppressWarnings


@Retention(SOURCE) public @interface SuppressWarnings
表示在注解元素中和所有包含在注解元素中的所有元素中要抑制的警告。

SuppressWarnings注解接口适用于所有声明上下文,因此@SuppressWarnings注解可以用于任何元素。作为一种风格,程序员应该始终在最深层嵌套的有效元素上使用此注解。例如,如果要抑制特定方法中的警告,应该对该方法进行注解,而不是对其类进行注解。

在给定元素中抑制的警告集是所有包含元素中抑制的警告的并集。例如,如果在类中注解一个警告并在类中的方法中注解另一个警告,那么这两个警告将在方法中被抑制。但是,请注意,如果在module-info文件中抑制了警告,则抑制将应用于文件中的元素,而适用于模块中包含的类型。同样,如果在package-info文件中抑制了警告,则抑制将应用于文件中的元素,而适用于包中包含的类型。

Java编译器必须识别Java语言规范(JLS第9.6.4.5节)中定义的所有警告类型,包括:

  • 未经检查的警告,由字符串"unchecked"指定。
  • 已废弃的警告,由字符串"deprecation"指定。
  • 移除警告,由字符串"removal"指定。
  • 预览警告,由字符串"preview"指定。
Java编译器是否识别其他字符串是实现质量的问题。编译器供应商应该记录他们支持的额外警告名称。鼓励供应商合作,以确保相同的名称在多个编译器中起作用。
实现注意事项:
除了规定的抑制字符串外,javac参考实现还识别其--help-lint输出中记录的与编译相关的警告名称。
参见Java语言规范
4.8 原始类型
4.12.2 引用类型的变量
5.1.9 未经检查的转换
5.5 强制转换上下文
9.6.4.5 @SuppressWarnings
自版本:
1.5
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    String[]
    编译器在注解元素中要抑制的警告集。
  • Element Details

    • value

      String[] value
      编译器在注解元素中要抑制的警告集。允许重复名称。名称的第二次及后续出现将被忽略。未识别的警告名称的存在是一个错误:编译器必须忽略它们不认识的任何警告名称。但是,如果注解包含一个未识别的警告名称,它们可以自由发出警告。
      返回:
      要抑制的警告集