代码之家  ›  专栏  ›  技术社区  ›  Bill K

Eclipse能否将类文件中的第二个类提取到自己的文件中

  •  35
  • Bill K  · 技术社区  · 16 年前

    我经常首先通过在我正在处理的类中创建一个内部类来重构代码——完成后,我将整个类移到一个新的类文件中。这使得将代码重构到新类非常容易,因为a)我只处理一个文件,b)在我对名称/名称有了很好的了解之前(有时它最终会变成一个以上的类),我不会创建新文件。

    Eclipse能帮我完成最后一步吗?我应该能够告诉它我希望类在哪个包中,它可以从类名和包的目录中找出文件名。

    这看起来像是一个微不足道的重构,而且非常明显,但是我无法找出击键/手势/任何能让它发生的事情。我尝试了拖动、菜单、上下文菜单和浏览键盘快捷键。

    有人知道这个吗?

    [编辑]这些已经是该文件中的“顶级”类,而不是内部类,“移动”似乎不想为我创建新类。这是我通常做的一种困难的方式——出去,创建一个空的类,回来然后移动。我想一步一步完成整个事情。

    5 回复  |  直到 16 年前
        1
  •  43
  •   scubabbl    16 年前

    对不起,我以前回答错了。我重新检查了一下,但它并不是你想要的。不过,我确实在3.4中找到了解决方案。

    突出显示类,复制ctrl-c或剪切ctrl-x,单击希望类进入的包,然后粘贴ctrl-v。Eclipse将自动为您生成类。

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

        2
  •  30
  •   Andy Huang    14 年前

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

        3
  •  1
  •   Matt Solnit    16 年前

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

        4
  •  1
  •   Aditya Naique    10 年前

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

        5
  •  0
  •   David Pierre    16 年前

    可以在两个重构中完成:

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

    2. 移动