在公司學的一點技巧,直接上乾貨示例代碼了數據庫
枚舉類: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