diff --git a/src/main/java/com/serliunx/statemanagement/manager/StateManager.java b/src/main/java/com/serliunx/statemanagement/manager/StateManager.java index fddb06e..e57b206 100644 --- a/src/main/java/com/serliunx/statemanagement/manager/StateManager.java +++ b/src/main/java/com/serliunx/statemanagement/manager/StateManager.java @@ -72,7 +72,7 @@ public interface StateManager { * @return 如果当前状态不符合或者不可切换则返回假, 否则走切换逻辑, 此时结果取决于切换的结果. */ default boolean switchToIfMatch(S now, S newState) { - if (isSwitchable() || now.equals(current())) + if (isSwitchable() && now.equals(current())) return switchTo(newState); return false; }