@SuppressWarnings

来源:互联网 发布:mac铁锈红怎么涂 编辑:程序博客网 时间:2024/06/11 06:25
Excluding warnings using @SuppressWarnings
J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。

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

Since Java 5.0, you can disable compilation warnings relative to a subset of a compilation unit using the java.lang.SuppressWarning annotation.

@SuppressWarning("unused") public void foo() {
String s;
}
Without the annotation, the compiler would complain that the local variable s is never used. With the annotation, the compiler silently ignores this warning locally to thefoo method. This enables to keep the warnings in other locations of the same compilation unit or the same project.

The list of tokens that can be used inside a SuppressWarnings annotation is:

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 -- 任何 finally 子句不能正常完成时的警告。
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)
javadoc to suppress warnings relative to javadoc warnings
nls to suppress warnings relative to non-nls string literals
null to suppress warnings relative to null analysis
rawtypes to suppress warnings relative to usage of raw types -- 去除警告 rawtypes是说传参时也要传递带泛型的参数
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
--序列化警告,
压制要求提供串行版本标志serialVersionUID的警告信息
当实现了序列化接口的类上缺少serialVersionUID属性的定义时,会出现黄色警告。

static-access to suppress warnings relative to incorrect static access
static-method to suppress warnings relative to methods that could be declared as static
super to suppress warnings relative to overriding a method without super invocations
synthetic-access to suppress warnings relative to unoptimized access from inner classes
unchecked to suppress warnings relative to unchecked operations -- 告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型。
unqualified-field-access to suppress warnings relative to field access unqualified
unused to suppress warnings relative to unused code and dead code
一个的时候用法:

@SuppressWarnings(unchecked)

两个或多个的用法:
@SuppressWarnings({ "deprecation", "rawtypes" })

也可以用:

@SuppressWarnings(value={"deprecation","unchecked"}).
0 0