我们有一个巨大的遗留代码库,我们正在努力解决所有 Sonar 质量问题。
有一个问题是 - 在检查相等性时,字符串文字应放在左侧。这个问题的数量是 12k+。
testFlag.equalsIgnoreCase("Y") - non-complaint
"Y".equalsIgnoreCase(testFlag) - complaint
我正在尝试使用 Intelliji IDE Inspection 实用程序通过“结构搜索检查”来解决此问题。然而,它没有成功。
我将搜索模板保留为
$instanceVariable$(equalsIgnoreCase)\(\"$StringLiteral$
并将模板替换为
$StringLiteral$(equalsIgnoreCase)\(\"$instanceVariable$
但它不起作用,这是正确的做法吗/intelliji 中是否有更好的选择。
我对 Eclipse 等其他 IDE 持开放态度。因此,如果任何开源 IDE 中有一个选项,我可以尝试一下。
最佳答案
在 Intellij 中,您应该能够通过 Analyze 选项执行此操作。
可能最简单的选择是通过按名称运行检查将检查限制为仅一个
然后你想要的检查是expression.equals("literal")
,把它放在出现的框中并选择它,然后选择你的范围来运行检查。
然后您可以逐个修复每个出现的问题,或者点击“翻转等于”按钮一次完成所有这些操作。
关于Java 代码质量批量修复 - 检查相等性时,字符串文字应放在左侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45047751/