4. Enums as State Machines publicenumLeaveRequestState { Submitted { @OverridepublicLeaveRequestState nextState() {returnEscalated; } @OverridepublicString responsiblePerson() {return"Employee"; } }, Escalated { @OverridepublicLeaveRequestState nextState() {returnApproved; } @OverridepublicString resp...
Enum的单例和工具类使用方法 你能够很easy地用一个enmu构建一个单例或者工具类。 enum Singleton { INSTANCE; } enum Utility { ; // no instances } 用enum实现一个接口 你也能够在一个enum中实现一个接口。 interface Named { public String name(); public int order(); } enum Planets implements Named...
LeaveRequestState state = LeaveRequestState.Submitted; 1. 枚举也可以包括一些方法,可以在枚举中写抽象方法,让每一个实例实现这个方法,这是实现状态机的关键。 Java枚举隐式继承自class java.lang.Enum,因此它们就不能再继承其他类了。不过它们像其他类一样,可以实现其他接口。 public enum LeaveRequestState { Su...
publicenumLeaveRequestState{Submitted{@OverridepublicStringresponsiblePerson(){return"Employee";}},Escalated{@OverridepublicStringresponsiblePerson(){return"Team Leader";}},Approved{@OverridepublicStringresponsiblePerson(){return"Department Manager";}};publicabstract StringresponsiblePerson();} 注意分号需要放在...
while(context.state().process(context)); } 使用这种方式,可以创建一个XML解析器,解析器可以在10微秒内处理完数据包。大多数情况下,它跟你需要的一样高效。 Reference:Java Secret: Using an enum to build a State machinefrom ourJCG partnerPeter Lawreyat theVanilla Java. ...
public class StateMachineConfig extends EnumStateMachineConfigurerAdapter { @Override public void configure(StateMachineStateConfigurer states) throws Exception { states.withStates().initial(States.DRAFT).states(EnumSet.allOf(States.class)); } @Override ...
首先在枚举类中 定义state 和定义的抽象方法。 public enum javaPlatformState { // 定义state OPEN{ @Override void exit(JavaPlatformMachine pm){super.exit(pm);} @Override void valid(JavaPlatformMachine pm){ this.exit(pNZvcrpyXim); if(pm.data.getValid_()){ ...
StateEnum 用枚举类定义三种状态 packageorg.example.origin;publicenumStateEnum{POWER_OFF,FAN_ONLY,COOL} OriginAction pressPowerOff()表示点开关按钮,pressCool()表示点击制冷按钮。 packageorg.example.origin;publicclassOriginAction{privateStateEnumstateEnum;publicOriginAction(){this.stateEnum=StateEnum.POWER_OFF...
然后它必须通过调用 mState.process( event ) 将这些事件委托给状态机。这意味着我需要枚举事件类型。例如: enum Events { SOMETHING_HAPPENED, ... } ... onSometingHappened() { mState.process( SOMETHING_HAPPENED ); } 但是我不喜欢这个,因为(a)我有丑陋的需要 switch 在每个状态的 process(event) 中...
JDK:Java development kit, java开发工具包 JVM:java virtual machine ,java虚拟机 Compile:编绎 Run:运行 Class:类 Object:对象 System:系统 out:输出 print:打印 line:行 variable:变量 type:类型 operation:操作,运算 array:数组 parameter:参数 method:方法 ...