1. 概述
在本教程中,我们将了解与 @SuppressWarnings Java 注释一起使用的不同警告名称,它允许我们抑制编译器警告。这些警告名称使我们能够抑制特定的警告。可用的警告名称取决于我们的 IDE 或 Java 编译器。 Eclipse IDE 是本文的参考。
2. 警告名称
以下是 @SuppressWarnings 注释中可用的有效警告名称列表:
- all :这是一种抑制所有警告的通配符
- boxing :抑制与装箱/拆箱操作相关的警告
- used :抑制未使用代码的警告
- cast :抑制与对象强制转换操作相关的警告
- deprecation :抑制与弃用相关的警告,例如已弃用的类或方法
- 限制 :抑制与使用不鼓励或禁止的引用相关的警告
- dep-ann :抑制与已弃用注释相关的警告
- Fallthrough :抑制与 switch 语句中缺少 break 语句相关的警告
- finally :抑制与不返回的 finally 块相关的警告
- hide :抑制与隐藏变量的局部变量相关的警告
- incomplete-switch :抑制与 switch 语句中缺少条目相关的警告( 枚举 情况)
- nls :抑制与非 nls 字符串文字相关的警告
- null :抑制与 null 分析相关的警告
- serial :抑制与缺少的 serialVersionUID 字段相关的警告,该字段通常出现在 Serialized 类中
- static-access :抑制与不正确的静态变量访问相关的警告
- 合成访问 :抑制与内部类的未优化访问相关的警告
- unchecked :抑制与未检查操作相关的警告
- unqualified-field-access :抑制与不合格字段访问相关的警告
- javadoc :抑制与 Javadoc 相关的警告
- rawtypes :抑制与使用原始类型相关的警告
- Resource :抑制与 Closeable 类型资源的使用相关的警告
- super :抑制与在没有 super 调用的情况下覆盖方法相关的警告
- sync-override :在覆盖 同步 方法时抑制由于缺少 同步 而导致的警告
3. 使用警告名称
本节将展示使用不同警告名称的示例。
3.1. @SuppressWarnings(“未使用”)
在下面的示例中,警告名称抑制了方法中的 usedVal 的警告:
@SuppressWarnings("unused")
void suppressUnusedWarning() {
int usedVal = 5;
int unusedVal = 10; // no warning here
List<Integer> list = new ArrayList<>();
list.add(usedVal);
}
3.2. @SuppressWarnings(“弃用”)
在下面的示例中,警告名称抑制了使用 @deprecated 方法的警告:
@SuppressWarnings("deprecation")
void suppressDeprecatedWarning() {
ClassWithSuppressWarningsNames cls = new ClassWithSuppressWarningsNames();
cls.deprecatedMethod(); // no warning here
}
@Deprecated
String deprecatedMethod() {
return "deprecated method";
}
3.3. @SuppressWarnings(“失败”)
在下面的示例中,警告名称抑制了缺少 中断 语句的警告 - 我们将它们包含在此处并注释掉,以显示否则我们会在哪里收到警告:
@SuppressWarnings("fallthrough")
String suppressFallthroughWarning() {
int day = 5;
switch (day) {
case 5:
return "This is day 5";
// break; // no warning here
case 10:
return "This is day 10";
// break; // no warning here
default:
return "This default day";
}
}
3.4. @SuppressWarnings(“串行”)
该警告名称位于类级别。在下面的示例中,警告名称会抑制 Serialized 类中缺少的 serialVersionUID (我们已将其注释掉)的警告:
@SuppressWarnings("serial")
public class ClassWithSuppressWarningsNames implements Serializable {
// private static final long serialVersionUID = -1166032307853492833L; // no warning even though this is commented
4. 组合多个警告名称
@SuppressWarnings 注释需要一个 String 数组,因此我们可以组合多个警告名称:
@SuppressWarnings({"serial", "unchecked"})
5. 结论
本文提供了有效的 @SuppressWarnings 警告名称的列表。与往常一样,本教程中显示的所有代码示例都可以 在 GitHub 上获取。