一、前言
编码时我们总会发现如下变量未被使用的警告提示:
上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了。这时我们可以在方法前添加 @SuppressWarnings("unused") 去除这些“感叹号”。
**二、 @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|
|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|
|static-access|o 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|
**五、Java Lint选项 **
** 1\. lint的含义**
用于在编译程序的过程中,进行更细节的额外检查。
** 2. javac 的标准选项和非标准选项**
**标准选项:**是指当前版本和未来版本中都支持的选项,如 -cp 和 -d 等。
**非标准选项:**是指当前版本支持,但未来不一定支持的选项。通过 javac -X 查看当前版本支持的非标准选项。
![](https://images0.cnblogs.com/blog/347002/201410/211648020124434.png)
** 3\. 查看警告信息**
默认情况下执行 javac 仅仅显示警告的扼要信息,也不过阻止编译过程。若想查看警告的详细信息,则需要执行 javac -Xlint:keyword 来编译源码了。
**六、总结**
现在再都不怕不知道设置断点没有咯!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于