Java 中有效的@SuppressWarnings警告名称列表是什么?

Java 中的有效警告名称列表是什么?@SuppressWarnings

介于 in 之间的位。("")@SuppressWarnings("")


答案 1

这取决于您的 IDE 或编译器。

以下是Eclipse Galileo的列表

  • 全部禁止显示所有警告
  • 装箱以禁止显示与装箱/取消装箱操作相关的警告
  • 强制转换以抑制与强制转换操作相关的警告
  • dep-ann 以禁止显示与已弃用的注释相关的警告
  • 弃用以禁止显示与弃用相关的警告
  • 回退以禁止显示与 switch 语句中缺少断点相关的警告
  • 最后抑制相对于不返回的警告
  • 隐藏以禁止显示相对于隐藏变量的局部变量的警告
  • 不完整开关,用于抑制与 switch 语句中缺少条目相关的警告(枚举大小写)
  • nls 用于禁止显示相对于非 nls 字符串文本的警告
  • 以禁止显示与空分析相关的警告
  • 限制禁止与使用不鼓励或禁止的引用相关的警告
  • 串行,用于抑制与可序列化类的缺少串行版本 UID 字段相关的警告
  • 静态访问,用于抑制与不正确的静态访问相关的警告
  • 综合访问,用于抑制与来自内部类的未优化访问相关的警告
  • 未选中以禁止显示与未选中操作相关的警告
  • 非限定字段访问,用于抑制与字段访问不限定相关的警告
  • 未用于禁止显示与未使用代码相关的警告

Indigo 列表新增:

  • javadoc 禁止显示与 javadoc 警告相关的警告
  • 用于禁止显示与原始类型使用相关的警告的原始类型
  • static-method,用于禁止显示相对于可声明为静态的方法的警告
  • 超级,用于抑制相对于在没有超级调用的情况下重写方法的警告

朱诺列表补充道:

  • 资源,用于禁止显示与 Closeable 类型的资源使用相关的警告
  • sync-override,用于在重写同步方法时由于缺少同步而抑制警告

开普勒和卢娜使用与朱诺相同的令牌列表(列表)。

其他的会类似,但会有所不同。


答案 2

允许所有值(忽略无法识别的值)。已识别的列表是特定于编译器的。

Java 教程中,并列为 Java 语言规范所需的两个警告,因此,它们应该对所有编译器都有效:uncheckeddeprecation

每个编译器警告都属于一个类别。Java 语言规范列出了两个类别:弃用和未选中。

Java 语言规范中定义它们的特定部分在各个版本之间并不一致。在 Java SE 8 规范中,分别在 9.6.4.5 节中列为编译器警告,分别@SuppressWarnings9.6.4.6 @Deprecateduncheckeddeprecation

对于 Sun 的编译器,运行会给出该版本识别的所有值的列表。对于 1.5.0_17,列表显示为:javac -X

  • 折旧
  • 猖獗
  • 跌倒
  • 路径
  • 串行
  • 最后

推荐