更新时间:2024-04-12 GMT+08:00
分享

移动内部类到上层

此重构支持您将内部类移至上层,这个重构将包外的类、函数、变量、常量和命名空间移动到一个包中。

执行重构

  1. 在代码编辑器中,将光标放在要移动到上层的类的声明位置。
  2. 在主菜单或编辑器上下文菜单中,选择Refactor>Move Inner Class To Upper Level。
  3. 在打开的Move Inner Class To Upper Level对话框中,提供移动类的名称和其他重构选项。

    • 要保留移动类对其以前的外部类的访问权限,请勾选复选框Pass outer class' instance as a parameter
    • 要在搜索代码中移动类的引用,请勾选Search in comments and stringsSearch for text occurrences复选框 。

  4. 单击 Refactor以应用重构。

示例

例如,让我们将InnerClass移动到上层。要保留从InnerClassOuterClass的访问,OuterClass的实例将作为参数传递给InnerClass

重构前

class OuterClass {
    String str = "test";
    public void outermethod(){
        InnerClass ic = new InnerClass();
        ic.print();
    }

    class InnerClass {
        public void print(){
            System.out.println(str);
        }
    }
}

重构后

class OuterClass {
    String str = "test";
    public void outermethod(){
        InnerClass ic = new InnerClass(this);
        ic.print();
    }
}

class InnerClass {
    private final OuterClass outerClass;

    public InnerClass(OuterClass outerClass) {
        this.outerClass = outerClass;
    }

    public void print() {
        System.out.println(outerClass.str);
    }
}

相关文档