Java中@SuppressWarnings(“unchecked“)的作用

**

简介

**:java.lang.SuppressWarnings是J2SE5.0中标准的Annotation之一。可以标注在类、字段、方法、参数、构造方法,以及局部变量上。
**作用:**告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。
使用:
@SuppressWarnings(“”)
@SuppressWarnings({})
@SuppressWarnings(value={})
根据sun的官方文档描述
value -将由编译器在注释的元素中取消显示的警告集。允许使用重复的名称。忽略第二个和后面出现的名称。出现未被识别的警告名不是错误:编译器必须忽略无法识别的所有警告名。但如果某个注释包含未被识别的警告名,那么编译器可以随意发出一个警告。

各编译器供应商应该将它们所支持的警告名连同注释类型一起记录。鼓励各供应商之间相互合作,确保在多个编译器中使用相同的名称。

示例:

@SuppressWarnings(“unchecked”)

告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。

@SuppressWarnings(“serial”)

如果编译器出现这样的警告信息:The serializable class WmailCalendar does notdeclare a static final serialVersionUID field of type long 使用这个注释将警告信息去掉。

@SuppressWarnings(“deprecation”)

如果使用了使用@Deprecated注释的方法,编译器将出现警告信息。 使用这个注释将警告信息去掉。

@SuppressWarnings(“unchecked”, “deprecation”)

告诉编译器同时忽略unchecked和deprecation的警告信息。

@SuppressWarnings(value={“unchecked”, “deprecation”})

等同于@SuppressWarnings(“unchecked”, “deprecation”)

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

http://images.cnitblog.com/blog/347002/201410/211544285432472.png

上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了。这时我们可以在方法前添加 @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 的源码可知,其注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量。

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

四、Java Lint选项

1. lint的含义

用于在编译程序的过程中,进行更细节的额外检查。

javac 的标准选项和非标准选项

 **标准选项:**是指当前版本和未来版本中都支持的选项,如 -cp 和 -d 等。

 **非标准选项**:是指当前版本支持,但未来不一定支持的选项。通过 javac -X 查看当前版本支持的非标准选项。

http://images.cnitblog.com/blog/347002/201410/211648020124434.png

###3. 查看警告信息

默认情况下执行 javac 仅仅显示警告的扼要信息,也不过阻止编译过程。若想查看警告的详细信息,则需要执行 javac -Xlint:keyword 来编译源码了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值