今天遇到一个问题,就是设计了两个枚举,一个是状态枚举(EnumA)一个是动作枚举(EnumB),状态枚举定义了当前状态的可以进行的操作,操作枚举定义了执行了此操作后的下一个状态。
具体代码如下:
public enum EnumA {
STATUS_A("STATUS_A", "状态A", EnumB.OPERATION_A),
STATUS_B("STATUS_B", "状态B", null);
private String code;
private String desc;
private List operation;
}
EnumA(String code, String desc, List operation) {
this.operation = operation;
this.code = code;
this.desc = desc;
}
public enum EnumB {
OPERATION_A("OPERATION_A", "操作1", EnumA.STATUS_B);
private String code;
private String desc;
private EnumA next;
}
EnumB(String code, String desc, EnumA next) {
this.next = next;
this.code = code;
this.desc = desc;