在使用枚举类的时候,我定义了一个枚举类
@Getter
@AllArgsConstructor
public enum CameraTypeFromDis {
/**
* X光机入口
**/
XRAY_IN(7, "光机入口摄像头"),
/**
* X光机出口
**/
XRAY_OUT(8, "光机出口摄像头"),
/**
* nvr出入口
**/
NVR_IN_OUT(10, "nvr出入口");
/**
* 标记响应数据库的值
**/
@EnumValue
/** 标记响应json值(序列化) **/
@JsonValue
private final int index;
private final String name;
private static Map<Integer, CameraTypeFromDis> map = Maps.newHashMap();
private static List<Bean<Integer, String>> list = Lists.newArrayList();
static {
for (CameraTypeFromDis e : CameraTypeFromDis.values()) {
map.put(e.getIndex(), e);
list.add(new Bean<Integer, String>(e.getIndex(), e.getName()));
}
}
/**
* 反序列化时初始化(入参为 对应该枚举的 @JsonValue值)
*
* @param index
* @return com.center.enums.CameraTypeFromDis
*/
@Nullable
@JsonCreator(mode = Mode.DELEGATING)
public static CameraTypeFromDis of(Integer index) {
return map.get(index);
}
public static List<Bean<Integer, String>> list() {
return list;
}
}
在我使用的时候,我一直以为需要类点上,然后就报错了:
CameraTypeFromDis.XRAY_IN
正确的使用方式: