@SuppressWarning
@SuppressWarning 是一个注解,它的作用是抑制编译时的警告,可以用于标记整个类、某个方法、某个属性或者某个参数,用于告诉编译器这个代码是安全的,不必警告。
强烈建议最小范围使用这个注解,一旦你在一个比较大的范围抑制错误,可能会把真正的问题掩盖了。
@SuppressWarning 支持的参数
- all : 抑制所有警告
- boxing : 抑制装箱、拆箱相关的警告
- cast : 抑制强转相关的警告
- dep-ann : 抑制过时注解相关的警告
- fallthrough : 抑制没有 break 的 switch 语句的警告
- finally : 抑制 finally 块没有 return 的警告
- hiding : 抑制关于隐藏的本地变量的警告
- incomplete-switch : 抑制 switch 语句中 case 不完整的警告(当 case 是枚举时)
- nls : 抑制创建无法翻译的字符串的警告 (nls : National Language Support)
- null : 抑制关于可能为空的警告
- rawtypes : 抑制使用泛型作为类参数时没有指明参数类型的警告
- restriction : 抑制使用不建议或者禁止的引用的警告
- serial : 抑制一个可序列化类中没有 serialVersionUID 的警告
- static-access : 抑制一个不正确的静态访问相关的警告
- synthetic-access : 抑制未优化的内部类访问相关的警告
- unchecked : 抑制未经检查的操作(比如强转)的警告
- unqualified-field-access : 抑制不合格的属性访问的警告
- unused : 抑制未使用代码相关的警告
- FieldCanBeLocal :抑制全局变量只使用一次,可以被当做局部变量的警告
可以看到,@SuppressWarning 的参数其实就是我们日常开发中需要注意的点,比如强转前的类型检查,空指针的检查,原始类型取值时的类型判断,静态访问的注意事项等等。
@SuppressWarning 及上面的参数使用方式
@SuppressWarning("unchecked")
//....
如果同时有多个警告需要抑制,可以在括号中用花括号把抑制的参数包起来:
@SuppressWarnings({"unchecked", "rawtypes"})