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

标签 java eclipse intellij-idea ide

我们有一个巨大的遗留代码库,我们正在努力解决所有 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 选项执行此操作。

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

enter image description here

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

然后您可以逐个修复每个出现的问题,或者点击“翻转等于”按钮一次完成所有这些操作。

enter image description here

关于Java 代码质量批量修复 - 检查相等性时,字符串文字应放在左侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45047751/

相关文章:

Eclipse 中的 Java 方法观察点

java - 插件更新后 Eclipse Juno 无法打开我的工作区

jakarta-ee - 更新资源/热部署不适用于 tomee 和 IntelliJ

debugging - IntelliJ 中的 Grails 3 调试

java - 如何在 Java 中使用 XPath 解析带有内部引用的 SOAP 响应

Java/ Selenium : Class containing methods for each Browser

java - 用于加密语音数据的 SSL

java - 隐藏 "cannot be resolved"错误

java - 为什么 Intellij Idea 让我们通过生成器生成不正确的 equals()-hashcode() 对?

java - RejectedExecutionException 的原因是什么?