IntelliJ如何仅针对Setter方法屏蔽参数字段同名警告
完全可以在IntelliJ中实现仅针对Setter方法屏蔽参数与字段同名的警告,既不需要全局关闭这条有实用价值的检查规则,也不用逐方法添加冗余的抑制注解。
编写Java Setter方法时,和类字段同名定义参数是行业通用的标准写法,示例代码如下:
public void setMaxNrIterations(int maxNrIterations) { this.maxNrIterations = maxNrIterations; }
不少开发者碰到这类警告时,要么全局关闭检查丢掉了其他场景的风险提示,要么逐方法添加@SuppressWarnings("SameParameterValue")注解,操作繁琐还会让代码多出很多无意义的注解标记,实际上IntelliJ原生就支持和Eclipse一致的例外配置。
配置操作步骤
- 打开IntelliJ设置窗口:Windows/Linux系统使用快捷键
Ctrl+Alt+S,macOS系统使用快捷键Cmd+, - 在设置目录中依次展开:
Editor->Inspections->Java->Naming,找到名为Parameter name hides field的检查项(也就是触发字段、参数同名提示的对应规则) - 选中该检查项后,在右侧的配置栏找到Ignore for simple setters选项,勾选该复选框
- 依次点击
Apply、OK保存配置即可生效
配置生效后,IntelliJ会自动识别符合Java Bean规范的简单Setter方法(方法名以
set开头、仅携带一个参数、方法逻辑仅为给对应字段赋值),这类方法不会再触发参数与字段同名的警告;其他非Setter场景下的参数遮蔽字段问题,依然会正常抛出告警,不会影响这条规则在通用编码场景下的检查价值。
注意不要混淆告警规则:很多开发者之前误加@SuppressWarnings("SameParameterValue")其实是找错了对应的检查项,SameParameterValue规则的触发条件是方法调用时传入的参数值始终固定无变化,和Setter场景下的同名参数遮蔽警告完全是两个不同的检查逻辑,完成上述配置后,标准写法的Setter不需要加任何抑制注解就不会触发警告。
内容的提问来源于stack exchange,提问作者mmo
相关产品推荐
相关产品推荐

