您的位置:首页 > 其它

SuppressWarnings(取消警告提示)

2017-12-25 10:24 197 查看
注释类型
当你的编码可能存在警告时,比如安全警告,可以用它来消除
api中是这样描述的
指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。注意,在给定元素中取消显示的警告集是所有包含元素中取消显示的警告的超集。例如,如果注释一个类来取消显示某个警告,同时注释一个方法来取消显示另一个警告,那么将在此方法中同时取消显示这两个警告。根据风格不同,程序员应该始终在最里层的嵌套元素上使用此注释,在那里使用才有效。如果要在特定的方法中取消显示某个警告,则应该注释该方法而不是注释它的类。

@SuppressWarnings
J2SE
提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。
一点背景:J2SE 5.0
为 Java 语言增加了几个新的特性,并且和它们一起增加了许多新的警告并承诺在将来增加更多的警告。您可以为
"javac" 增加 -Xlint 参数来控制是否报告这些警告(如上面的 @Deprecated 部分所示)。
E:\java> javac   Test.java 
注意:Test.java   使用了未经检查或不安全的操作。 
注意:要了解详细信息,请使用   -Xlint:unchecked   重新编译。 
javac -Xlint:unchecked Test.java  在cmd直接通过javac写
默认情况下,Sun
编译器以简单的两行的形式输出警告。通过添加 -Xlint:keyword 标记(例如 -Xlint:finally),您可以获得关键字类型错误的完整说明。通过在关键字前面添加一个破折号,写为 -Xlint:-keyword,您可以取消警告。(-Xlint 支持的关键字的完整列表可以在 上找到。)下面是一个清单:

关键字

用途

deprecation

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

unchecked

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

fallthrough

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

path

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

serial

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

finally

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

all

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

boxing

装箱/拆箱操作相关的警告

cast

强转相关操作的警告

unused

忽略未使用的相关警告

屏蔽某些编译时的警告信息 在强制类型转换的时候编译器会给出警告 
加上程序代码@SuppressWarnings("unchecked")在代码里面写

 就不会警告了

 

@SuppressWarnings("deprecation")表示不检测过期的方法

 

Lint是一个静态检查器,它围绕Android项目的正确性、安全性、性能、可用性以及可访问性进行分析。它检查的对象包括XML资源、位图、ProGuard配置文件、源文件甚至编译后的字节码。

这一版本的Lint包含了API版本检查、性能检查以及其他诸多特性。其中还有一个重要的改动是Lint可以使用@SuppressLint标注忽略指定的警告。

@SuppressLint("NewApi")作用是屏蔽android lint错误

在Android代码中,我们有时会使用比我们在AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告.解决方法是在方法上加上@SuppressLint("NewApi")作用仅仅是屏蔽android
lint错误,所以在方法中还要判断版本做不同的操作.

@SuppressLint("InlinedApi")

忽视内联字段可能不工作的老平台

@SuppressLint("HandlerLeak")应用问题:在ADT 20 Changes我们可以找到这样一个变化:“New Lint Checks: Look for handler leaks: This
check makes sure that a handler inner class does not hold an implicit reference to its outer class.” 就是说在ADT20以后加入了一条新的检查规则:确保类内部的handler不含有对外部类的隐式引用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息