37

我经常首先通过在我正在处理的类中创建一个内部类来重构代码——当我完成后,我将整个东西移动到一个新的类文件中。这使得将代码重构到新类中非常容易,因为 A)我只处理一个文件,并且 B)我不会创建新文件,直到我对名称/名称有一个很好的了解(有时它会结束作为一个以上的类)。

Eclipse 有什么办法可以帮助我完成最后一步吗?我应该能够告诉它我想要类在哪个包中,它可以从类名中找出文件名,从包中找出目录。

这似乎是一个微不足道的重构并且非常明显,但我无法弄清楚击键/手势/任何让它发生的东西。我尝试过拖动、菜单、上下文菜单和浏览键盘快捷键。

有人知道这个吗?

[编辑] 这些已经是这个文件中的“顶级”类,而不是内部类,并且“移动”似乎不想为我创建一个新类。这是我通常做的艰难的方式——包括走出去,创建一个空班,回来和搬家。我想一步完成整个事情。

4

5 回答 5

45

很抱歉我之前给出了错误的答案。我重新检查了,它并没有完全想要你想要的。不过,在 3.4 中,我确实为您找到了解决方案。

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

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

于 2008-09-18T23:49:38.103 回答
37

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

于 2011-04-01T00:34:17.880 回答
1

右键单击类名(在源代码中)并选择 Refactor -> Convert Member Type to Top Level。但是,它不允许您选择包。

于 2008-09-18T23:55:09.353 回答
1

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

于 2015-05-10T13:09:04.543 回答
0

可以在 2 次重构中完成:

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

  2. 移动

于 2008-09-18T23:55:07.450 回答