Java中@SuppressWarnings的作用

概述

java.lang.SuppressWarnings是J2SE5.0中标准的Annotation之一。可以标注在类、字段、方法、参数、构造方法,以及局部变量上。

1
@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE})

目的

告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。

使用方式

1
2
3
@SuppressWarnings(“”)
@SuppressWarnings({})
@SuppressWarnings(value = {})

使用示例

@SuppressWarnings(“serial”)

警告信息:The serializable class WmailCalendar does notdeclare a static final serialVersionUID field of type long
使用这个注释将警告信息去掉。

@SuppressWarnings(“unused”)

编码时出现变量未被使用的警告提示

可以在方法前添加 @SuppressWarnings("unused") 去除这些“感叹号”。

抑制警告的关键字

*关键字* *用途*
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(在switch语句中,抑制与缺失中断相关的警告)
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)(为了在switch语句(enum案例)中抑制相对于缺失条目的警告)
nls to suppress warnings relative to non-nls string literals(要抑制相对于非nls字符串字面量的警告)
null to suppress warnings relative to null analysis(为了抑制与null分析相关的警告)
rawtypes to suppress warnings relative to un-specific types when using generics on class params(在类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(为了一个可串行化的类,为了抑制相对于缺失的serialVersionUID字段的警告)
static-access o suppress warnings relative to incorrect static access(o抑制与不正确的静态访问相关的警告)
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(抑制没有使用过代码的警告)

本文地址: https://github.com/maxzhao-it/blog/post/40046/