我们拥有庞大的遗留代码库,我们正在尝试解决所有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中都有一个选项,我可以试试。
答案 0 :(得分:3)
在Intellij中,您应该可以通过分析选项执行此操作。
可能最简单的选择是通过按名称运行检查将检查限制为只有
然后您想要的检查是expression.equals("literal")
,将其放在出现的框中并选择它,然后选择您的范围来运行检查。
然后你可以逐个修复每个事件,或点击flip equals按钮一次完成。
答案 1 :(得分:1)