@Getter
@AllArgsConstructor
public static enum ResultCodeEnum{
SUCCESS(0, “处理正确”),
CHECKERROR(1, “数据校验出错”),
JRMERROR(2, “接入码不对”),
LENGTHERROR(3, “数据长度不对”),
OTHERERROR(4, “处理过程出错”);
int code;
String msg;
//根据code返回name
public static String getMsgInfo(int code) {
for (ResultCodeEnum temp : ResultCodeEnum.values()) {
if (code == temp.getCode()) {
return temp.getMsg();
}
}
return “”;
}
}
//——————————————————————————————————————————
枚举类型不能继承,但可以实现接口通过接口定义
public static interface IFieldTypeEnum {
int getType();
String getName();
int getContentLength();
}
@Getter
@AllArgsConstructor
public static enum DecodeFieldTypeEnum implements SxzdMsgBody.IFieldTypeEnum{
NETTYPE(1, “网络类型”, 4),
SBLOCATION_LAC(2, “设备位置信息(LAC ID)”, 4),
SBLOCATION_CELL(3, “设备位置信息(CELL ID)”, 4),
SIM(4, “SIM 编号 ICCID”, 12),
IMSI(5, “国家移动识别码 IMSI(MCC+MNC+MSIN)”, 10);
int type;
String name;
int contentLength;
}
@Getter
@AllArgsConstructor
public static enum EncodeFieldTypeEnum implements SxzdMsgBody.IFieldTypeEnum{
FENPINGNUM(1, “液晶表分屏数”, 4),
TIMEINTERVAL(2, “液晶分屏切屏时间间隔”, 4);
int type;
String name;
int contentLength;
}
—如果通过接口定义的公共返回name的方法
public String getTypeName(IFieldTypeEnum iFieldTypeEnum){
return iFieldTypeEnum.getName();
}
—使用
getTypeName(DecodeFieldTypeEnum.NETTYPE);
getTypeName(EncodeFieldTypeEnum.FENPINGNUM);