如何在 Eclipse 中将静态内部类重构为顶级类?

2022-09-01 07:27:51

我无法为以下方案找到正确的重构选项:

我有这样的代码(在Outer.java中):

public class Outer {

    // ... class stuff

    public static class Inner {
        // ... inner class stuff   
    }
}

我正在寻找一种方法来选择Inner,并将其转换为它自己的源文件中的顶级类。我知道使用复制/粘贴等手动执行此操作非常容易,但是内部类在很多地方被引用,并且我希望重构选项在引用它的所有位置处理更改。.java

我已经尝试了这个选项,但这对一个名为我不太理解的字段做了一些奇怪的事情。Refactor -> Extract Class...data

Eclipse版本是3.5.1伽利略。

如何将静态内部类重构为顶级类?


编辑:不敢相信我忽略了这样做的选项。感谢你们所有的正确答案,+1给你们所有人。我仍然需要接受一个答案,所以如果有任何更有用的信息,例如脚本的陷阱,仍然有一个目的留下答案。


答案 1

这很容易,我不敢相信我错过了它:

将光标置于内部类型中的任意位置时,右键单击并选择:
Refactor -> Convert Member Type to Top Level...

(默认设置中没有快捷方式)

这会自动提取内部类型,并将其放在自己的文件中,与外部类型位于同一包和目录中。

更新

在 Eclipse 的更高版本中,此重构已重命名为“将类型移动到新文件”


答案 2

为了完整性,Eclipse 的 4.x 版更改了术语,现在他们将该操作称为Move Type to New File...

Move type to new file


推荐