eclipse可以将类文件中的第二个类提取到自己的文件中

时间:2008-09-18 23:43:53

标签: java eclipse refactoring

我经常通过在我正在处理的类中创建一个内部类来重构代码 - 当我完成后,我将整个事物移动到一个新的类文件中。这使得重构代码变得非常容易,因为A)我只处理单个文件,而B)我不会创建新文件,直到我对名称/名称有很好的了解(有时它最终会不止一个班级。)

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

这看起来像一个微不足道的重构,而且非常明显,但我无法弄清楚击键/手势/做出任何改变。我尝试过拖动,菜单,上下文菜单以及浏览键盘快捷键。

有人知道这一个吗?

[edit]这些已经是这个文件中的“顶级”类,而不是内部类,而“Move”似乎不想为我创建一个新类。这是我通常做的艰难的方式 - 涉及外出,创建一个空课,回来和移动。我想一步完成整个事情。

5 个答案:

答案 0 :(得分:43)

对不起,我之前给出了错误的答案。我重新检查了,它并不是很想要你想要的。我确实在3.4中找到了解决方案。

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

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

答案 1 :(得分:31)

在Eclipse 3.6中,你可以这样做:Refactor - >将类型移动到新文件

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

可以在2次重构中完成:

  
      
  1. 将会员类型转换为顶级

  2.   
  3. 移动

  4.