@SuppressWarnings使用-屏蔽一些无关紧要的警告
@SuppressWarnings 用法
与idea设置相关-参考
作用:用于抑制编译器产生警告信息,不显示波浪提示线。
我们在写代码的时候,不论是导入的包,还是声明的对象,有时候会出现黄线,感觉就很难受!
@SuppressWarnings注解主要用在取消一些编译器产生的警告对代码左侧行列的遮挡,有时候这会挡住我们断点调试时打的断点。 如图所示:
这时候我们在方法上加上@SuppressWarnings注解就可以消除这些警告的产生,注解的使用有三种:
1. @SuppressWarnings("unchecked") [^ 抑制单类型的警告]
2. @SuppressWarnings("unchecked","rawtypes") [^ 抑制多类型的警告]
3. @SuppressWarnings("all") [^ 抑制所有类型的警告]
@SuppressWarnings其注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量。建议把注解放在最近进警告发生的位置。
下面列举警告关键字:
关键字 | 用途 |
---|---|
all | to suppress all warnings (抑制所有警告) |
finally | to suppress warnings relative to finally block that don’t return (抑制finally模块没有返回的警告) |
null | to suppress warnings relative to null analysis( 忽略对null的操作) |
rawtypes | to suppress warnings relative to un-specific types when using generics on class params( 使用generics时忽略没有指定相应的类型) |
unchecked | to suppress warnings relative to unchecked operations( 抑制没有进行类型检查操作的警告),如使用List,ArrayList等未进行参数化产生的警告信息 |
unused | to suppress warnings relative to unused code( 抑制没被使用过的代码的警告) |
serial | to suppress warnings relative to missing serialVersionUID field for a serializable class( 忽略在serializable类中没有声明serialVersionUID变量) |
deprecation | 如果使用了使用@Deprecated注释的方法,编译器将出现警告信息。使用这个注释将警告信息去掉。 |
以下是使用和未使用对比
@SuppressWarnings(“unchecked”, “deprecation”)
告诉编译器同时忽略unchecked和deprecation的警告信息
@SuppressWarnings(value={“unchecked”, “deprecation”})
等同于@SuppressWarnings(“unchecked”, “deprecation”)
我经常遇到的问题是不晓得什么时候用@SupressWarnings的什么批注好,所以做了如下整理
使用:
@SuppressWarnings(“”)
@SuppressWarnings({})
@SuppressWarnings(value={})
一.@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 的源码可知,其注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量。而大家建议注解应声明在最接近警告发生的位置。
这里,我使用了,在类上使用抑制所有无关紧要的警告,因此,我右侧列,不会出现红色警告信息