在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或者字符串來表示狀態,提高代碼的可維護性和可讀性。