Eclipse自动重构String比较

时间:2013-09-18 10:44:39

标签: java eclipse string refactoring conditional-statements

考虑以下代码

1)if ("Anil".equals(name)) {

比以下更优先(因为它避免了NPE)

2)if (name.equals("Anil")) {

我正在维持一个充满第二类条件的班级。 我想将这些条件转换为类型1(常量第一)。

所以我想知道eclipse中是否有任何快捷方式可以做同样的事情。 eclipse重构菜单没有显示任何选项。

4 个答案:

答案 0 :(得分:3)

认为您应该使用regexp来替换它:     

(\w+).equals\(\"([\w]*)\"\)
有了这个:    
\"$2\".equals($1)

答案 1 :(得分:1)

我正在开发AutoRefactor Eclipse插件,可以完成您想要的任务以及更多。

首先需要从更新站点http://autorefactor.org/nightly安装插件。

完成此操作后,只需按Alt + Shift + Y组合,当参数为常量时,它将正确恢复对Object.equals()或String.equalsIgnoreCase()的所有调用。

答案 2 :(得分:0)

没有,但您可以尝试使用Eclipse宏录制器,例如Practically Macro

答案 3 :(得分:0)

我能想到的最佳选择是编写代码来重构代码。 Eclipse没有您正在寻找的特定交换。

像普通文件一样读取.java文件。查找上面的模式,并尝试用swap替换它。这样你也可以练习一些正则表达式。