Intellij Idea 在更新导入时将类重构为内部类

ccrfmcuu  于 2023-10-15  发布在  其他
关注(0)|答案(2)|浏览(101)

我有一个类,我想做一个内部类,有没有办法做到这一点,并更新所有的进口一样,当移动一个类使用Refactor菜单选项?
目前:

class A

    class B

我想达到的目标

class A {
        class B
    }

编辑:我使用的是Kotlin,它没有move to inner class选项,而Java类有。

70gysomp

70gysomp1#

您可以转到类B,在类名上插入一个插入符号,然后 Refactor|* 移动类 *,在打开的菜单中选择 *make inner class of * 字段中的A class:

所有从B类导入的内容将被删除到A类。

c86crjj0

c86crjj02#

我用以下步骤模拟了重构。
1.将B转换为A_B(或项目中唯一的其他名称)
1.使A_B成为A的内部类(手动移动代码)
1.在项目中使用“搜索和替换”将A_B替换为A.B
1.通过对import full.package.name.A.Bimport full.package.name.A执行另一次搜索/替换来修复导入语句
第一步使后续的搜索和替换步骤不太可能破坏某些东西。
如果您的项目包含Java代码,最后一步可能需要一些处理,因为在;上,import语句可能以一个通配符结束。

相关问题