在以下场景中,我很难找到正确的重构选项:
我有这样的代码(在Outer.java中):
public class Outer {
// ... class stuff
public static class Inner {
// ... inner class stuff
}
}我正在寻找一种方法来选择内部,并让它转换为顶级类,在它自己的.java源文件。我知道手动复制/粘贴等操作非常容易,但是内部类在很多地方都是引用的,我希望refactor选项可以在引用的任何地方处理更改。
我已经尝试了Refactor -> Extract Class...选项,但是对于一个名为data的字段,这做了一些奇怪的事情,但我不太理解。
Eclipse版本为3.5.1伽利略。
如何将静态内部类重构为顶级类?
编辑:不敢相信我忽略了这样做的选择。谢谢你所有正确的答案,+1给大家。我仍然需要接受一个答案,所以如果有更多有用的信息,比如脚本中的问题,那么留下一个答案仍然是有意义的。
发布于 2010-01-22 14:45:42
这太容易了,真不敢相信我竟然错过了:
将光标放置在内部类型中的任何位置,右击并选择:
Refactor -> Convert Member Type to Top Level...
(默认设置中没有快捷方式)
这会自动提取内部类型,并将其放入自己的文件中,与外部类型位于相同的包和目录中。
更新
在Eclipse的以后版本中,这种重构被重命名为"Move to New“
发布于 2015-06-29 12:10:28
为了完整起见,Eclipse4.x版本更改了术语,现在他们将该操作称为Move Type to New File...

发布于 2010-01-22 14:51:59
提取类不是您想要的。
我刚刚用Eclipse 3.4.2做了这件事
https://stackoverflow.com/questions/2117962
复制相似问题