如何自动将静态修饰符添加到提取的方法中,该方法在Eclipse for Java中可以是静态的

时间:2015-05-12 19:47:33

标签: java eclipse formatting refactoring modifier

我在Eclipse 4.4.2中启用了警告方法可以是静态的(在Preferences => Java => Compiler =>错误/警告中)。

如果我使用“Refactor => Extract Method”(Alt + Shift + M)提取方法 getPath ,如下例所示,我收到警告,因为提取的方法可以是静态的。如何设置Eclipse以自动使提取的方法静态,如果它可以是静态的?

修改

在对bayou.io发表评论后,我看到如果父方法有静态修饰符,则提取的方法也会自动获得静态修饰符。如果公共父方法没有静态修饰符,我必须手动将其添加到提取的方法...如果我想这样做。理由似乎是静态方法可能是危险的

如果我查看特殊情况,其中提取的方法不会修改任何静态(它是一个“纯静态辅助方法”,只适用于传递参数),我仍然更喜欢自动添加修饰符。

如果有什么事情会对这种行为造成危险,请告诉我。好吧,也许很难/不可能自动找出提取的方法是否是一种危险的静态方法。

我正在重构一些代码,之后我忘了将其他警告的数量减少到零。然后一位同事向我指出了我的警告,我的自我问了一个问题“为什么Eclipse没有注意静态修改器,如果它已经建议添加一个?” :)

提取前:

public String getAbsolutePath() {

    boolean runningInEclipse = true;
    if (runningInEclipse) {
        return "baa complicated long expressions";      
    } else {
        return "foo";
    }

}

提取后:

public String getAbsolutePath() {

    boolean runningInEclipse = true;
    if (runningInEclipse) {
        return getPath();           
    } else {
        return "foo";
    }

}

private String getPath() {
    return "baa complicated long expressions";
}

0 个答案:

没有答案