Java代码质量批量修复 - 在检查相等性时,应将字符串文字放在左侧

时间:2017-07-12 03:13:57

标签: java eclipse intellij-idea ide

我们拥有庞大的遗留代码库,我们正在尝试解决所有Sonar质量问题。

有问题说 - 在检查相等性时,字符串文字应放在左侧。这个问题的数量是12k +。

testFlag.equalsIgnoreCase("Y") - non-complaint
"Y".equalsIgnoreCase(testFlag) - complaint

我正在尝试使用 Intelliji IDE Inspection 实用程序来解决此问题,使用" Strutural Search Inspection"。但是,它没有成功。

我将搜索模板保留为

$instanceVariable$(equalsIgnoreCase)\(\"$StringLiteral$

并将模板替换为

$StringLiteral$(equalsIgnoreCase)\(\"$instanceVariable$

但它不起作用,是否正确地为intelliji提供了更好的选择。

我对Eclipse等其他IDE持开放态度。因此,如果在任何开源IDE中都有一个选项,我可以试试。

2 个答案:

答案 0 :(得分:3)

在Intellij中,您应该可以通过分析选项执行此操作。

可能最简单的选择是通过按名称运行检查将检查限制为只有

enter image description here

然后您想要的检查是expression.equals("literal"),将其放在出现的框中并选择它,然后选择您的范围来运行检查。

然后你可以逐个修复每个事件,或点击flip equals按钮一次完成。

enter image description here

答案 1 :(得分:1)

我使用$Instance$.$MethodCall$("$Parameter$")作为我的搜索模板,"$Parameter$".$MethodCall$($Instance$)作为我的替换模板。在“编辑变量”下,您可以选择左侧的MethodCall,在“文本约束”下,在“文本/正则表达式”框中输入equalsIgnoreCase

已在IDEA社区2017.1.5验证工作。

"String Literal On Left Side" tooltip for warning.