【问题标题】:Netbeans with Java: set all methods to static使用 Java 的 Netbeans:将所有方法设置为静态
【发布时间】:2013-01-05 23:44:37
【问题描述】:

我正在 NetBeans 上开发一个 Java 项目。

在某些时候,我有几个不是静态的变量和方法(比如说,大约二十个)。我想将它们全部重构为静态的。我该如何继续呢? netbeans 能做到吗?

例子:

public void method1() {
//...
}
public void method2() {
//...
}

当我点击某处或按下某些按钮时,我希望之前的方法变成:

例子:

public static void method1() {
//...
}
public static void method2() {
//...
}

一次性完成。

--

另一个常见的变体:假设我已将所有方法设置为公开,但我不再想要它了。我怎样才能将所有方法重构为私有(以便以后我可以仅将我认为必要的更改为公共)?

【问题讨论】:

    标签: java netbeans refactoring netbeans-7 automated-refactoring


    【解决方案1】:

    这类事情的用例非常小。将静态 API 转换为 OO 可能更常见,但将所有内容都转换为静态对于任何 IDE 来说通常都不足以进行自动重构,据我所知。

    我完全怀疑这样做是否明智,但如果您的所有方法都已经以静态方式编写,您可以简单地用“public static”搜索并替换“public”。

    至于更改方法的访问级别,它会因 IDE 而异,但再次搜索和替换可能比任何单击复选框重构对话框更容易,特别是如果您只是打开访问权限(缩小它可能会破坏其他代码,尽管它不太可能是重构工具可以修复的任何东西)。

    【讨论】:

    • 感谢您的回复。我同意你的看法。这个静态的东西对我的情况有点特殊。但我问的问题可以概括:如何选择几个方法并更改(重构)它们的所有修饰符,如静态、公共、返回类型(例如:将所有返回 int 的方法更改为 Integer,或将 float 更改为 double 或 Float , 等等), final 等到我想要的修饰符集?那样就好了。这就像 getter/setter 对话框(封装字段),但通常有几种方法,不仅是 getter 和 setter。
    【解决方案2】:

    一年后,我发现借助良好的通用文本编辑器(如 emacs 或 vim)而不是 IDE(NetBeans、Eclipse 等)可以更好地完成这项任务。

    在这种情况下,更好的文本编辑器是用户已经习惯的,在我的例子中是 Emacs。 Multiple cursors 包很容易解决这个问题。另一种选择是使用原生的query-replace 函数(默认绑定到M-%)。

    【讨论】:

      猜你喜欢
      • 2014-07-20
      • 2011-08-16
      • 1970-01-01
      • 2013-05-08
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      相关资源
      最近更新 更多