Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Eclipse中提取类_Java_Eclipse - Fatal编程技术网

Java 在Eclipse中提取类

Java 在Eclipse中提取类,java,eclipse,Java,Eclipse,这一定是可能的,但我在Eclipse中无法理解。我有 /** ClassA.java */ class A { ... } class B { ... } 我想选择B类并提取到它自己的文件中,这样我可以得到: /** ClassA.java */ class A { ... } 及 如何在Eclipse中实现这一点?如果没有特定的函数,那么创建新类,复制并粘贴B的内容,然后在两个文件(或至少是A.java)上按CTRL-SHIFT-O来清除导入就可以了 这不是一件很常见的事情,

这一定是可能的,但我在Eclipse中无法理解。我有

/** ClassA.java */
class A {
  ...
}

class B {
  ...
}
我想选择B类并提取到它自己的文件中,这样我可以得到:

/** ClassA.java */
class A {
  ...
}


如何在Eclipse中实现这一点?

如果没有特定的函数,那么创建新类,复制并粘贴B的内容,然后在两个文件(或至少是A.java)上按CTRL-SHIFT-O来清除导入就可以了

这不是一件很常见的事情,手工操作也很容易


编辑:您还可以创建B.java,然后在A.java中使用重构->移动B将其移动到B.java。当我这样做时,它似乎没有复制到导入上,而当我手动复制和粘贴时,它会自动抓取导入。

据我所知,没有任何功能。您必须创建一个java文件,并将该类剪切粘贴到新文件中。修复导入和包声明名称(如果需要)


编辑最好的方法是:只需创建一个空白文件
B.java
,返回
a.java
,突出显示
B.java
,然后右键单击并选择
重构->Move
Alt+Shift+V
)。它将把类B移动到B.java

我已经测试过了,它可以工作了。如果需要,您可能需要管理导入。

在我的Eclipse(3.6-Helios SR1)中,我突出显示类型名称(
B
),然后右键单击弹出菜单,然后选择
重构
将类型移动到新文件…

编辑:在早期版本中,它被称为“将成员类型转换为顶级”,但已被更新,以处理更多的成员类型:

将类型移动到新文件重构。

将成员类型转换为顶级 重构已重命名为移动 键入新文件,现在允许任何 要移动的文件中的辅助类型 保存到它自己的文件中。行动 继续适用于成员类型

这就是您的工作方式(在Eclipse3.5中工作):

  • 选择要提取的代码:

    /** ClassB.java */
    class B {
      ...
    }
    
  • 削减

  • 右键单击要放入的包

  • 选择粘贴。(然后根据需要组织导入。)


  • 将插入符号放在类B中的某个位置(可能必须在类名中)。选择
    Refactor->Move type to new File

    (这是Eclipse3.6中的操作名称。我相信在早期版本中,它是
    将成员类型移动到顶层的

    参考资料:


    嗯,我想知道是什么插件提供了这种功能。我的股票安装中没有这个选项。真有趣,我没有这个选项。你有什么版本的Eclipse?它在3.6中被称为,它以前有一个不同的名称。后续:似乎是Eclipse 3.6中的一个新功能:@Ztyx,啊,是的,它不仅仅是从“将成员类型移动到顶级…”重命名,因为在你的例子中,它不是你要移动的成员类型。这真的是一个新功能,很有趣。尽管这很简单,但你会认为有捷径可走。似乎是一个普通的手术。这是一个普通的手术。因此IDEA自古以来就支持它。我喜欢它,它避免了创建文件。奇怪的是,Eclipse如此不一致,以至于何时正确地复制了导入。如果手动粘贴到该文件中,则随后将进行任何导入。在这里,它们没有被复制。我建议使用剪切粘贴选项,但我不知道第3步和第4步。谢谢你…奇怪的是,它没有像Alt-Shift-M那样的快速命令。但是,嘿,每天学点新东西。谢谢我试着把B班从A班换下来,但一直没有成功,所以我把它从我的解决方案中排除了。
    /** ClassB.java */
    class B {
      ...
    }