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