在公司学的一点技巧,直接上干货示例代码了数据库
枚举类:ide
public enum CommodityTypeEnum implements SuperEnum { ZC(1, "正品商品"), // 正品商品 FX(2, "分销商品"), // 分销商品 ZH(3, "组合商品"), // 组合商品 ZP(4, "赠品"), // 赠品 BC(5, "包材"), // 包材 HC(6, "耗材"), // 耗材 FL(7, "辅料"), // 辅料 XN(8, "虚拟品"), // 虚拟品 FS(9, "附属品"), // 附属品 CC(10, "残次品"), // 残次品 OTHER(11, "其余");// 其余 private Integer value; private String desc; CommodityTypeEnum(Integer value, String desc) { this.value = value; this.desc = desc; } @Override public Integer getValue() { return this.value; } @Override public String getDesc() { return this.desc; } }
枚举类父类:this
public interface SuperEnum { /** * 枚举数据库存储值 */ default String getDesc(){ return null; }; Serializable getValue(); }
调用方法:参数enumType为枚举类的类名称,EnumsVO为返回实体类型,这里就略了spa
public List<EnumsVO> listEnums(String enumType) throws Exception { List<EnumsVO> list = new ArrayList<>(); // 根据给定的类名初始化类 Class<?> cls = Class.forName("cn.gushen.entity.enums." + enumType); // 实例化这个类 SuperEnum[] values = (SuperEnum[]) cls.getMethod("values").invoke(new Object(), new Object[]{}); for (SuperEnum item : values) { EnumsVO enumsVO = new EnumsVO(); enumsVO.setCode(item.toString()); enumsVO.setValue(item.getValue().toString()); enumsVO.setName(item.getDesc()); list.add(enumsVO); } return list; }
这种操做作下拉框挺适合的,今天记录下来,但愿也给看的朋友一点参考。code