更新时间:2024-04-12 GMT+08:00
移动静态成员
此重构允许您将类的静态成员移动到不同的类中。
执行重构
- 在代码编辑器中,将光标放置在要移动到另一个类的静态成员(字段或方法)的声明上。
- 在主菜单或编辑器上下文菜单中,选择Refactor>Move Static Members。
- 在打开的Move Static Members对话框中,提供重构选项。
- 提供有效的目标类名称。
- 在Members to be moved列表中,选中要移动的静态成员复选框。
- 在Visibility区域中,指定移动的静态成员的可见性修改器,或选择Escalate以自动将可见性设置为所需的级别。
- 选中Move as enum constant if possible复选框,将常量(即static final字段)作为枚举常量移动到枚举类型。如果枚举类型具有类型参数的构造函数,则这是可能的。
- 单击Refactor以应用重构。
示例
例如,让我们将类MoveStaticMembers的所有静态成员移动到枚举类MyEnum。由于MyEnum有一个带有String类型参数的构造函数,因此我们可以使用Move as enum constant if possible选项将STATICFINALSTR和staticStr字段移动为枚举常量。
重构前
class MoveStaticMembers { Boolean isTrue; public static final String STATICFINALSTR = "TEST"; static List<Integer> staticList; static int[] staticN; private static final String staticStr = "test"; public static void staticMethod() { System.out.println(staticStr); } private static Boolean staticMethod2() { return true; } void method() { } } enum MyEnum { ; String typeName; MyEnum(String name) { typeName = name; } }
重构后
class MoveStaticMembers { Boolean isTrue; void method() { } } enum MyEnum { STATICFINALSTR("TEST"), staticStr("test"); static List<Integer> staticList; static int[] staticN; String typeName; MyEnum(String name) { typeName = name; } public static void staticMethod() { System.out.println(staticStr); } private static Boolean staticMethod2() { return true; } }
父主题: 移动重构