首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Eclipse中将静态内部类重构为顶级类?

问如何在Eclipse中将静态内部类重构为顶级类?
EN

Stack Overflow用户
提问于 2010-01-22 14:43:22
回答 6查看 13.7K关注 0票数 34

在以下场景中,我很难找到正确的重构选项:

我有这样的代码(在Outer.java中):

代码语言:javascript
复制
public class Outer {

    // ... class stuff

    public static class Inner {
        // ... inner class stuff   
    }
}

我正在寻找一种方法来选择内部,并让它转换为顶级类,在它自己的.java源文件。我知道手动复制/粘贴等操作非常容易,但是内部类在很多地方都是引用的,我希望refactor选项可以在引用的任何地方处理更改。

我已经尝试了Refactor -> Extract Class...选项,但是对于一个名为data的字段,这做了一些奇怪的事情,但我不太理解。

Eclipse版本为3.5.1伽利略。

如何将静态内部类重构为顶级类?

编辑:不敢相信我忽略了这样做的选择。谢谢你所有正确的答案,+1给大家。我仍然需要接受一个答案,所以如果有更多有用的信息,比如脚本中的问题,那么留下一个答案仍然是有意义的。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-01-22 14:45:42

这太容易了,真不敢相信我竟然错过了:

将光标放置在内部类型中的任何位置,右击并选择:

Refactor -> Convert Member Type to Top Level...

(默认设置中没有快捷方式)

这会自动提取内部类型,并将其放入自己的文件中,与外部类型位于相同的包和目录中。

更新

在Eclipse的以后版本中,这种重构被重命名为"Move to New“

票数 51
EN

Stack Overflow用户

发布于 2015-06-29 12:10:28

为了完整起见,Eclipse4.x版本更改了术语,现在他们将该操作称为Move Type to New File...

​

​

票数 6
EN

Stack Overflow用户

发布于 2010-01-22 14:51:59

提取类不是您想要的。

我刚刚用Eclipse 3.4.2做了这件事

  1. 选择内部
  2. 右键单击“重构->将成员类型转换为顶级.”
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2117962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档