java enums 如何用于状态机

avatar
作者
筋斗云
阅读量:0

在Java中,可以使用enum来定义状态机的状态。一个简单的例子如下:

public class StateMachineExample {          //定义状态机的状态     public enum State {         START,         PROCESSING,         FINISHED     }      //初始状态为START     private State currentState = State.START;      //定义状态转移方法     public void transition(State nextState) {         currentState = nextState;     }      //获取当前状态     public State getCurrentState() {         return currentState;     }      public static void main(String[] args) {         StateMachineExample stateMachine = new StateMachineExample();          //开始状态机         stateMachine.transition(State.PROCESSING);         System.out.println("Current state: " + stateMachine.getCurrentState());          //状态转移         stateMachine.transition(State.FINISHED);         System.out.println("Current state: " + stateMachine.getCurrentState());     } } 

在这个例子中,我们定义了一个包含三个状态的状态机,分别是START、PROCESSING和FINISHED。在StateMachineExample类中,我们可以通过transition方法进行状态的转移,并且可以通过getCurrentState方法获取当前的状态。

通过使用enum来定义状态机的状态,可以使代码更加清晰和易于理解,并且可以避免使用magic number或者字符串来表示状态,提高代码的可维护性和可读性。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!