@SuppressWarnings作用:用于抑制编译器产生警告信息。它的注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量,但是建议注解声明在最接近警告发生的位置。
去感叹号?
我们经常遇到 代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行设置的断点了,这时我们可以在方法前添加@SuppressWarnings("xxx") 去除这些“感叹号”。
使用示例
示例1——抑制单类型的警告:
@SuppressWarnings("unchecked")
publicvoid addItems(String item){
@SuppressWarnings("rawtypes")
List items = new ArrayList();
items.add(item);
}
示例2——抑制多类型的警告:
@SuppressWarnings(value={"unchecked", "rawtypes"})
publicvoid addItems(String item){
List items = new ArrayList();
items.add(item);
}
示例3——抑制所有类型的警告:
@SuppressWarnings("all")
publicvoid addItems(String item){
List items = new ArrayList();
items.add(item);
}
抑制警告的关键字及含义
all: 抑制所有的警告
boxing: 抑制与装箱/拆箱操作相关的警告
cast: 抑制与强制转换操作相关的警告
dep-ann: 抑制与已弃用注释相关的警告
deprecation: 抑制与弃用相关的警告
fallthrough: 在开关语句中抑制与丢失中断相关的警告
finally: 抑制与最终块相关的不返回的警告
hiding: 为了抑制相对于本地隐藏变量的警告。
incomplete-switch: 在switch语句(enum案例)中,为了抑制相对于丢失条目的警告
nls: 抑制相对于非nls字符串常量的警告
null: 抑制与空分析相关的警告
rawtypes: 在类params上使用泛型时,要抑制相对于非特定类型的警告。
restriction: 抑制与使用不鼓励或禁止引用有关的警告
serial: 禁止对可序列化类缺少serialVersionUID字段的警告
static-access: 抑制与不正确的静态访问相关的警告
synthetic-access: 抑制与内部类的未优化访问相关的警告
unchecked: 抑制与未检查操作相关的警告
unqualified-field-access: 抑制与字段访问不限定相关的警告
unused: 抑制与未使用代码相关的警告