如何在 IntelliJ IDEA 中执行 Boolean To Enum 重构?

Mar*_*rcG 5 java enums refactoring intellij-idea automated-refactoring

如何在 IntelliJ IDEA 中执行Boolean To Enum重构?

例如,转换这个:

void changeLights(boolean isOn) {
    this.isOn = isOn;
    }

changeLights(true);
changeLights(false);
Run Code Online (Sandbox Code Playgroud)

进入这个:

enum LightState { ON, OFF }

void changeLights(LightState lightState) {
    this.lightState = lightState;
    }

changeLights(LightState.ON);
changeLights(LightState.OFF);
Run Code Online (Sandbox Code Playgroud)

Pet*_*rey 3

我会添加一个方法

@Deprecated
void changeLights(boolean isOn) {
    changeLights(isOn ? LightState.ON : LightState.OFF);
}
Run Code Online (Sandbox Code Playgroud)

然后你可以内联这个方法。最后,您可以使用检查分析工具来“简化”

changeLights(true ? LightState.ON : LightState.OFF); // use IDEA to simplify
Run Code Online (Sandbox Code Playgroud)

changeLights(LightState.ON);
Run Code Online (Sandbox Code Playgroud)

与 false 类似 ->changeLights(LightState.OFF);