Supported Values for @SuppressWarnings & How to use @SuppressWarnings

Supported Values for @SuppressWarnings

http://jinchun1223.javaeye.com/blog/454140
http://www.breakitdownblog.com/supported-values-for-suppresswarnings/

Update #1: All these annotations are still valid in Eclipse 3.4 and 3.5, there have been no new SuppressWarning arguments added in those versions of the JDT compiler.

If you are a Java developer and use the new @SuppressWarnings annotation in your code from time-to-time to suppress compiler warnings you, like me, have wondered probably about a million times already just exactly what are the supported values that can be used with this annotation.

The reason the list isn’t easy to find is because it’s compiler specific, which means Sun may have a different set of supported values than say IBM, GCJ or Apache Harmony.

Fortunately for us, the Eclipse folks have documented the values they support (As of Eclipse 3.3), here they are for reference:

* 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
* 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)
* nls to suppress warnings relative to non-nls string literals
* null to suppress warnings relative to null analysis
* 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
* static-access to suppress warnings relative to incorrect static access
* 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

TIP: For the folks that haven’t used @SuppressWarnings before, the syntax looks like this:

@SuppressWarnings(”unused”)

and can be placed above almost any piece of code that is causing a compiler warning to popup for your class.

How to use @SuppressWarnings

Sometimes you will got the warning in Java when you are using the eclipse. And this is kind of annoying. Now you can use this to eliminate it:

@SuppressWarnings(option)

This can be categorized into two categories:

  • Put this notation right before the code with warning:
    • @SuppressWarnings("unused") String unused = "never";
  • Put this notation right before the class declaration
    • @SuppressWarnings("deprecation ")
    • class DeprecationExample{ ... }

I think the warning options in red should be categoried into category 2.

You can simply try this out!

Warning options
-warn:
allDeprecation
allJavadoc
assertIdentifier
boxing
charConcat
conditionAssign
constructorName
dep-ann
deprecation
discouraged
emptyBlock
enumSwitch
fallthrough
fieldHiding
finalBound
finally
forbidden
hiding
incomplete-switch
indirectStatic
intfAnnotation
intfNonInherited
javadoc
localHiding
maskedCatchBlocks
nls
noEffectAssign
null
over-ann
paramAssign
pkgDefaultMethod
raw
semicolon
serial
specialParamHiding
static-access
staticReceiver
suppress
synthetic-access
syntheticAccess
tasks(<task1>|...|<taskN>)
typeHiding
unchecked
unnecessaryElse
unqualified-field-access
unqualifiedField
unused
unusedArgument
unusedImport
unusedLabel
unusedLocal
unusedPrivate
unusedThrown
uselessTypeCheck
varargsCast
warningToken
Set warning level.
e.g. -warn:unusedLocal,deprecation

In red are the default settings.

 -warn:none disable all warnings -warn:<warnings separated by ,> enable exactly the listed warnings -warn:+<warnings separated by ,> enable additional warnings -warn:-<warnings separated by ,> disable specific warnings
allDeprecationdeprecation even inside deprecated code
allJavadocinvalid or missing javadoc
assertIdentifieroccurrence of assert used as identifier
boxingautoboxing conversion
charConcatwhen a char array is used in a string concatenation without being converted explicitly to a string
conditionAssignpossible accidental boolean assignment
constructorNamemethod with constructor name
dep-annmissing @Deprecated annotation
deprecationusage of deprecated type or member outside deprecated code
discourageduse of types matching a discouraged access rule
emptyBlockundocumented empty block
enumSwitch,
incomplete-switch
incomplete enum switch
fallthroughpossible fall-through case
fieldHidingfield hiding another variable
finalBoundtype parameter with final bound
finallyfinally block not completing normally
forbiddenuse of types matching a forbidden access rule
hidingmacro for fieldHiding, localHiding, typeHiding and maskedCatchBlock
indirectStaticindirect reference to static member
intfAnnotationannotation type used as super interface
intfNonInheritedinterface non-inherited method compatibility
javadocinvalid javadoc
localHidinglocal variable hiding another variable
maskedCatchBlockshidden catch block
nlsnon-nls string literals (lacking of tags //$NON-NLS-<n>)
noEffectAssignassignment with no effect
nullmissing or redundant null check
over-annmissing @Override annotation
paramAssignassignment to a parameter
pkgDefaultMethodattempt to override package-default method
rawusage a of raw type (instead of a parametrized type)
semicolonunnecessary semicolon or empty statement
serialmissing serialVersionUID
specialParamHidingconstructor or setter parameter hiding another field
static-accessmacro for indirectStatic and staticReceiver
staticReceiverif a non static receiver is used to get a static field or call a static method
suppressenable @SuppressWarnings
syntheticAccess,
synthetic-access
when performing synthetic access for innerclass
tasksenable support for tasks tags in source code
typeHidingtype parameter hiding another type
uncheckedunchecked type operation
unnecessaryElseunnecessary else clause
unqualified-field-access,
unqualifiedField
unqualified reference to field
unusedmacro for unusedArgument, unusedImport, unusedLabel, unusedLocal, unusedPrivate and unusedThrown
unusedArgumentunused method argument
unusedImportunused import reference
unusedLabelunused label
unusedLocalunused local variable
unusedPrivateunused private member declaration
unusedThrownunused declared thrown exception
uselessTypeCheckunnecessary cast/instanceof operation
varargsCastvarargs argument need explicit cast
warningTokenunhandled warning token in @SuppressWarnings
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值