前言:
此刻姐妹们对“枚举 数据库”都比较关心,你们都需要学习一些“枚举 数据库”的相关知识。那么小编在网上收集了一些有关“枚举 数据库””的相关文章,希望大家能喜欢,朋友们一起来了解一下吧!我发现很多人在定义枚举的时候都是平铺,一个枚举一个类,枚举多的时候就变得很混乱,可读性很低,每次查找枚举很费时间。
枚举归类
其实枚举是可以归类的,把相似的枚举放在一个枚举类里。我习惯把枚举数据库表做对应,就像表和实体bean的对应关系一样,一张表一个枚举类。
枚举大类是个接口interface,然后在interface里定义具体枚举。
public interface OrderEnums { enum TaskStatus { NU_ROLLBACK(0), ROLLBACK_ING(1), ROLLBACK_SUC(2); private final Integer code; TaskStatus(Integer code) { this.code = code; } public Integer getCode() { return code; } } enum BizCode { SP("sp", "single payment"), TP("tp", "single payment query order"); BizCode(String code, String description) { this.code = code; this.description = description; } private String code; private String description; public String getCode() { return code; } public String getDescription() { return description; } } //... ...}
OrderEnums接口名称,内部的TaskStatus,BizCode属于具体的枚举类名,在调用的时候,直接就是OrderEnums.TaskStatus.getCode()就可以了。
枚举内部逻辑处理
枚举定义完成之后,要参与业务逻辑,比如获取枚举集合,比较值,根据枚举值获取枚举之类的操作,这些操作都可以在枚举类内部完成,这样可以职责和逻辑更单一。
enum BizCode { SP("sp", "single payment"), TP("tp", "single payment query order"); private String code; private String description; //根据code值获取枚举对象 public static BizCode get(String code) { if (Objects.isNull(code)) { return null; } for (BizCode i : values()) { if (i.getCode().equals(code)) { return i; } } return null; } //获取枚举list public static List<String> getListCode() { List<String> list = new ArrayList<>(); list.add(SP.getCode()); return list; } public String getCode() { return code; } public String getDescription() { return description; } }
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #枚举 数据库