Java- @SuppressWarnings注解用法详解

@SuppressWarnings注解用法详解

一、注释类型:
当你的编码可能存在警告时,比如安全警告,可以用它来消除。
API中是这样描述的:
指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。
注意,在给定元素中取消显示的警告集是所有包含元素中取消显示的警告的超集。
例如,如果注释一个类来取消显示某个警告,同时注释一个方法来取消显示另一个警告,那么将在此方法中同时取消显示这两个警告。
根据风格不同,程序员应该始终在最里层的嵌套元素上使用此注释,在那里使用才有效。
如果要在特定的方法中取消显示某个警告,则应该注释该方法而不是注释它的类。
在java编译过程中会出现很多警告,有很多是安全的,但是每次编译有很多警告影响我们对error的过滤和修改,我们可以在代码中加上 @SuppressWarnings(“XXXX”); 来解决
二、SuppressWarnings的用法。
1、以下为抑制单类型的警告。
在这里插入图片描述
(没有用@SuppressWarnings抑制警告)
在这里插入图片描述
(有用@SuppressWarnings抑制了警告)

在这里插入图片描述
(有用@SuppressWarnings抑制了警告)

2、以下为抑制多类型的警告。
在这里插入图片描述
(没有用@SuppressWarnings抑制警告)
在这里插入图片描述
(有用@SuppressWarnings抑制了警告)

3、以下为抑制所有的警告。
在这里插入图片描述
(没有用@SuppressWarnings抑制了警告)
在这里插入图片描述
(有用@SuppressWarnings抑制了警告)

三、 通过@SuppressWarnings的源码知道,可以注解目标可以是类、字段、函数、函数入参、构造函数和函数的局部变量,注解应该放在要警告语句的的上边,不建议放在类的外面,或者其它地方。
四、抑制警告的关键字
all***** 抑制所有警告
boxing 抑制装箱、拆箱操作时候的警告
cast 抑制映射相关的警告
dep-ann 抑制启用注释的警告
deprecation***** 抑制过期方法警告
fallthrough 抑制确在switch中缺失breaks的警告
finally 抑制finally模块没有返回的警告
hiding 隐藏以抑制相对于隐藏变量的本地的警告
incomplete-switch 禁止相对于switch语句中缺少条目的警告(枚举案例)
nls 禁止相对于非nls字符串文字的警告
null***** 忽略对null的操作
rawtypes使用generics时忽略没有指定相应的类型
restriction禁止使用劝阻或禁止引用的警告
serial 忽略在serializable类中没有声明serialVersionUID变量
static-access***** 抑制不正确的静态访问方式警告
synthetic-access 抑制子类没有按最优方法访问内部类的警告
Unchecked****** 抑制没有进行类型检查操作的警告
unqualified-field-access 抑制没有权限访问的域的警告
unused****** 抑制没被使用过的代码的警告
javadoc 禁止相对于javadoc警告的警告
rawtypes 禁止相对于原始类型的使用的警告
static-method 禁止相对于可声明为静态的方法的警告
super 禁止相对于覆盖没有超级调用的方法的警告
resource 禁止相对于Closeable类型的资源使用的警告
sync-override 在重写同步方法时因为缺少同步而禁止显示警告
(以上翻译均来自google翻译)
带 ******* 为个人认为比较重要,如果有更好的意见请提出

发布了21 篇原创文章 · 获赞 4 · 访问量 3738

猜你喜欢

转载自blog.csdn.net/adim__/article/details/88832321
今日推荐