关于java:Eclipse可以将类文件中的第二个类提取到自己的文件中吗

关于java:Eclipse可以将类文件中的第二个类提取到自己的文件中吗

Can eclipse extract a second class in class file to its own file

我经常首先通过在正在处理的类中创建一个内部类来重构代码-完成后,将整个内容移到新的类文件中。这使得将代码重构到新类中非常容易,因为A)我只处理一个文件,B)在我对名称不陌生之前,我不会创建新文件(有时最终会作为一个以上的类)。

Eclipse有什么方法可以帮助我完成最后的动作?我应该能够告诉它我想要该类的包,它可以从类名中找出文件名,并从包中找出目录。

这似乎是微不足道的重构,而且确实很明显,但是我无法弄清楚击键/手势/实现它的方式。我尝试过拖动,菜单,上下文菜单和浏览键盘快捷键。

有人知道这个吗?

[edit]这些已经是此文件中的"顶级"类,而不是内部类,并且"移动"似乎不想为我创建一个新类。这是我通常很难做到的方式-涉及外出,创建一个空类,返回并移动。我想一步完成整个事情。


对不起,我之前给错了答案。 我重新检查,并没有完全想要您想要。 我还是在3.4中为您找到了解决方案。

突出显示该类,执行CTRL-C复制或剪切CTRL-X,单击您希望该类进入的包,然后粘贴CTRL-V。 Eclipse将自动为您生成类。

将会员类型转换为顶级功能不是很有效。 这样做将创建外部类的字段,并生成一个将外部类作为参数的构造函数。


在Eclipse 3.6中,您可以执行以下操作:重构->将类型移动到新文件


对于IntelliJ IDEA / Android Studio:
重构->移动->将内部类MyInnerClass移到更高级别


右键单击类名称(在源代码中),然后选择"重构"->"将成员类型转换为顶级"。 但是,它不允许您选择包。


可以通过2种重构来完成:

  • Convert Member type to top level

  • Move


  • 推荐阅读