Java—@SuppressWarnings注解

@SuppressWarnings注解用法详解

J2SE提供的最后一个批注是@SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。

@SuppressWarnings批注允许您选择性地取消特定代码段(即,类或方法)中的警告。其中的想法是当您看到警告时,您将调查它,如果您确定它不是问题,您就可以添加一个@SuppressWarnings批注,以使你不会再看到警告虽然它听起来似乎会屏蔽潜在的错误,但实际上它将提高代码安全性,因为它将防止。  您对警告无动于衷 -您看到的每一个警告都将值得注意。

使用:
@SuppressWarnings(“”)
@ SuppressWarnings({})@SuppressWarnings
(value = {})

编码时我们总会发现如下变量未被使用的警告提示:

上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了。这时我们可以在方法前添加@SuppressWarnings(“未使用”)去除这些“感叹号“。

@SuppressWarings注解

作用:用于抑制编译器产生警告信息。

示例1--抑制单类型的警告:

@SuppressWarnings("unchecked")  
public void addItems(String item){  
  @SuppressWarnings("rawtypes")  
   List items = new ArrayList();  
   items.add(item);  
}  

示例2--抑制多类型的警告:

@SuppressWarnings(value={"unchecked", "rawtypes"})  
public void addItems(String item){  
   List items = new ArrayList();  
   items.add(item);  
}  

示例3--抑制所有类型的警告:

@SuppressWarnings("all")  
public void addItems(String item){  
   List items = new ArrayList();  
   items.add(item);  
}  

注解目标

       通过@SuppressWarnings的源码可知,其注解目标为类,字段,函数,函数入参,构造函数和函数的局部变量。

       因此建议大家注解应声明在最接近警告发生的位置。

抑制警告的关键字

关键字 用途 作用
all to suppress all warnings 抑制所有警告
boxing  to suppress warnings relative to boxing/unboxing operations 抑制装箱,拆箱操作时候的警告
cast to suppress warnings relative to cast operations 抑制映射相关的警告
dep-ann to suppress warnings relative to deprecated annotation 抑制启用注释的警告
deprecation to suppress warnings relative to deprecation 抑制过期方法警告
fallthrough to suppress warnings relative to missing breaks in switch statements 抑制确在开关中缺失破坏的警告
finally  to suppress warnings relative to finally block that don’t return 抑制终于模块没有返回的警告
hiding to suppress warnings relative to locals that hide variable  
incomplete-switch to suppress warnings relative to missing entries in a switch statement (enum case) 忽略没有完整的开关语句
nls to suppress warnings relative to non-nls string literals 忽略非NLS格式的字符
null to suppress warnings relative to null analysis 忽略对空的操作
rawtypes to suppress warnings relative to un-specific types when using generics on class params 使用仿制药时忽略没有指定相应的类型
restriction to suppress warnings relative to usage of discouraged or forbidden references  
serial to suppress warnings relative to missing serialVersionUID field for a serializable class 忽略在序列化类中没有声明的serialVersionUID变量
static-access to suppress warnings relative to incorrect static access 抑制不正确的静态访问方式警告
synthetic-access  to suppress warnings relative to unoptimized access from inner classes 抑制子类没有按最优方法访问内部类的警告
unchecked to suppress warnings relative to unchecked operations 抑制没有进行类型检查操作的警告
unqualified-field-access to suppress warnings relative to field access unqualified 抑制没有权限访问的域的警告
unused to suppress warnings relative to unused code 抑制没被使用过的代码的警告

 

发布了75 篇原创文章 · 获赞 43 · 访问量 18万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览