@SuppressWarning用法的解析 - 镜花水月 - ITeye技术网站

@SuppressWarning用法的解析 - 镜花水月 - ITeye技术网站

解释一:  



       屏蔽某些编译时的警告信息

        在强制类型转换的时候编译器会给出警告

       加上



       程序代码



       @SuppressWarnings("unchecked")



       就不会警告了



解释二:



注释类型



当你的编码可能存在警告时,比如安全警告,可以用它来消除



api中是这样描述的



指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。注意,在给定元素中取消显示的警告集是所有包含元素中取消显示的警告的超集。例如,如果注释一个类来取消显示某个警告,同时注释一个方法来取消显示另一个警告,那么将在此方法中同时取消显示这两个警告。



根据风格不同,程序员应该始终在最里层的嵌套元素上使用此注释,在那里使用才有效。如果要在特定的方法中取消显示某个警告,则应该注释该方法而不是注释它的类。



解释三:



@SuppressWarnings



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



一点背景:J2SE 5.0 为 Java 语言增加了几个新的特性,并且和它们一起增加了许多新的警告并承诺在将来增加更多的警告。您可以为 "javac" 增加 -Xlint 参数来控制是否报告这些警告(如上面的 @Deprecated 部分所示)。



默认情况下,Sun 编译器以简单的两行的形式输出警告。通过添加 -Xlint:keyword 标记(例如 -Xlint:finally),您可以获得关键字类型错误的完整说明。通过在关键字前面添加一个破折号,写为 -Xlint:-keyword,您可以取消警告。(-Xlint 支持的关键字的完整列表可以在 上找到。)下面是一个清单:



关键字                                            用途



deprecation                     使用了不赞成使用的类或方法时的警告



unchecked                       执行了未检查的转换时的警告,例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型。



fallthrough                        当 Switch 程序块直接通往下一种情况而没有 Break 时的警告。



path                                   在类路径、源文件路径等中有不存在的路径时的警告。



serial                                 当在可序列化的类上缺少 serialVersionUID 定义时的警告。



finally                                任何 finally 子句不能正常完成时的警告。



all                                      关于以上所有情况的警告。





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

你可能感兴趣的:(ITeye)