在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或者字符串来表示状态,提高代码的可维护性和可读性。