关键词: @SuppressWarnings
、压制警告、消除警告、抑制警告
在日常Java开发的过程中,编辑器给出的黄色警告非常醒目,如果每个类都能做到没有任何警告,这个类在设计上就是非常规范的,至少基本的运行时问题都已经被考虑了。
除了正常编码编辑器警告提示外,如果编写代码时泛型、反射、可变参数等模糊化处理,也会引发警告,这种情况下,我们期望能够抑制警告,因为明确知道,当前代码没有任何问题,编辑器误报了。
1.all
抑制所有类型警告
2.rawtypes
抑制泛型缺失的警告
3.unchecked
抑制未检查的强制类型转换警告
4.serial
抑制实现了Serializable
接口,但缺少serialVersionUID
字段的警告
5.deprecation
抑制使用已过时API的警告
6.fallthrough
抑制switch
语句中的case
块缺少break
或return
的警告
7.static-access
抑制通过静态方式访问非静态成员的警告
8unused
抑制已定义API但未被使用的警告
9.hiding
抑制局部变量和全局变量同名的警告
10.boxing
抑制自动装箱和拆箱操作的警告
11.null
抑制可能发生空指针NullPointerException
的警告
12.resource
抑制API实现了Closeable
或AutoCloseable
但未调用的警告
13.OptionalGetWithoutIsPresent
抑制Optional
类获取元素可能发生NoSuchElementException
的警告
14.UnusedReturnValue
抑制API定义返回值但未接收的警告
15.varargs
抑制方法使用可变参数可能会导致不可重现的varargs参数造成堆污染警告
16.Duplicates
抑制代码重复警告,例如IDEA提示:Duplicated code fragment (xxx lines long)
17.SameParameterValue
抑制多次函数调用,参数相同的警告,例如IDEA提示:Actual value of parameter 'xxx' is always 'yyy'
下面是checkstyle
的一些案例
18.checkstyle:IllegalCatch
抑制catch
了Exception
、RuntimeException
和Throwable
等宽泛异常类型的警告
19.checkstyle:ParameterNumber
抑制参数个数超出规定数目的警告
20.checkstyle:VariableDeclarationUsageDistance
抑制变量定义与其使用距离过远的警告
21.checkstyle:CyclomaticComplexity
抑制超过规定圈复杂度的警告
22.checkstyle:MagicNumber
抑制魔法值定义的警告
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。