关键词: @SuppressWarnings、压制警告、消除警告、抑制警告

在日常Java开发的过程中,编辑器给出的黄色警告非常醒目,如果每个类都能做到没有任何警告,这个类在设计上就是非常规范的,至少基本的运行时问题都已经被考虑了。

除了正常编码编辑器警告提示外,如果编写代码时泛型、反射、可变参数等模糊化处理,也会引发警告,这种情况下,我们期望能够抑制警告,因为明确知道,当前代码没有任何问题,编辑器误报了。

1.all
抑制所有类型警告

2.rawtypes
抑制泛型缺失的警告

3.unchecked
抑制未检查的强制类型转换警告

4.serial
抑制实现了Serializable接口,但缺少serialVersionUID字段的警告

5.deprecation
抑制使用已过时API的警告

6.fallthrough
抑制switch语句中的case块缺少breakreturn的警告

7.static-access
抑制通过静态方式访问非静态成员的警告

8unused
抑制已定义API但未被使用的警告

9.hiding
抑制局部变量和全局变量同名的警告

10.boxing
抑制自动装箱和拆箱操作的警告

11.null
抑制可能发生空指针NullPointerException的警告

12.resource
抑制API实现了CloseableAutoCloseable但未调用的警告

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
抑制catchExceptionRuntimeExceptionThrowable等宽泛异常类型的警告

19.checkstyle:ParameterNumber
抑制参数个数超出规定数目的警告

20.checkstyle:VariableDeclarationUsageDistance
抑制变量定义与其使用距离过远的警告

21.checkstyle:CyclomaticComplexity
抑制超过规定圈复杂度的警告

22.checkstyle:MagicNumber
抑制魔法值定义的警告


witt
600 声望462 粉丝

一位爱好计算机运维,喜欢折腾软件,不爱写代码的准Java开发程序员。