有效的 @SuppressWarnings 警告名称

1.介绍

了解 与@SuppressWarnings Java 注解一起使用的不同警告名称,它允许编译器抑制警告。 这些警告名称允许抑制特定的警告。 可用的警告名称取决于我们的 IDE 或 Java 编译器

2. 警告名称

以下是@SuppressWarnings 注解中可用的有效警告名称列表:

    all: 这是一种禁止所有警告的通配符 boxing: 抑制与装箱/拆箱操作相关的警告 unused: 禁止未使用代码的警告 cast: 抑制与对象转换操作相关的警告 deprecation: 抑制与弃用相关的警告,例如弃用的类或方法 restriction: 抑制与使用不鼓励或禁止引用有关的警告 dep-ann: 抑制与弃用注释相关的警告 fallthrough: 抑制与switch语句中缺少break语句 finally: 抑制与finally块相关的警告,这些块不会返回 hiding: 抑制与隐藏变量的本地人相关的警告 incomplete-switch: 抑制与switch语句中缺失条目相关的警告*(枚举*情况) nls: 抑制与非 nls 字符串文字相关的警告 null: 禁止与null分析 serial: 抑制与缺少的serialVersionUID字段相关的警告,该字段通常在Serializable类 static-access: 抑制与不正确的静态变量访问相关的警告 synthetic-access: 抑制与来自内部类的未优化访问相关的警告 unchecked: 禁止与未经检查的操作相关的警告 unqualified-field-access: 抑制与不合格字段访问相关的警告 javadoc:抑制与 Javadoc 相关的警告 rawtypes: 抑制与使用原始类型相关的警告 resource: 禁止与使用Closeable super: 超级调用 的情况下覆盖方法相关的警告 sync-override: 在覆盖同步方法 抑制由于缺少同步

3. 使用警告名称

使用不同警告名称的示例。

3.1.@SuppressWarnings(“unused”)

在下面的示例中,警告名称抑制了方法中未使用值的警告:

@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)

在下面的示例中,警告名称禁止使用*@deprecated*方法的警告:

@SuppressWarnings("deprecated")
void suppressDeprecatedWarning() {
          
   
    ClassWithSuppressWarningsNames cls = new ClassWithSuppressWarningsNames();
    cls.deprecatedMethod(); // no warning here
}

@Deprecated
String deprecatedMethod() {
          
   
    return "deprecated method";
}

3.3. @SuppressWarnings(“fallthrough”)

在下面的示例中,警告名称抑制了缺少break语句的警告——将它们包含在这里,注释掉,以显示警告:

@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(“serial”)

此警告名称位于类级别。在下面的示例中,警告名称抑制了Serializable类中缺少的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"})
经验分享 程序员 微信小程序 职场和发展