您可以使用枚举来模拟基本的FSM(有限状态机):
public enum State { ONE { @Override public Set<State> possibleFollowUps() { return EnumSet.of(TWO, THREE); } }, TWO { @Override public Set<State> possibleFollowUps() { return EnumSet.of(THREE); } }, THREE // final state ; public Set<State> possibleFollowUps() { return EnumSet.noneOf(State.class); }}如果事情变得更复杂,则生成该代码的代码将非常冗长,但令人高兴的是,您可以获得编译时安全性,线程安全性和高性能。



