模块 java.base
 java.lang

注解 SuppressWarnings


@Retention (SOURCE ) public @interface SuppressWarnings
指示要在编译时在带注解的元素中以及在带注解的元素中包含的所有元素中抑制的警告。

SuppressWarnings 注释接口适用于所有声明上下文,因此 @SuppressWarnings 注释可用于任何元素。作为一种风格,程序员应该总是在它有效的最深嵌套元素上使用这个注解。例如,如果你想在特定方法中抑制警告,你应该注解该方法而不是它的类。

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

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
  • 必需元素摘要

    必需的元素
    修饰符和类型
    必需元素
    描述
    编译器在带注解的元素中禁止显示的一组警告。
  • 元素详细信息

    • value

      String [] value
      编译器在带注解的元素中禁止显示的一组警告。允许重复名称。名称的第二次和连续出现将被忽略。存在无法识别的警告名称是not一个错误:编译器必须忽略它们无法识别的任何警告名称。但是,如果注释包含无法识别的警告名称,它们可以自由发出警告。
      返回:
      要抑制的警告集