Enum枚举的使用实现
业务中涉及到的状态字段或者简单的选择项的使用。
例如:
1.定义enum枚举类。
package com.yjl.enums; import java.util.Objects; public enum GoodsUnitEnum { 重量("重量",1), 件数("件数",2), 体积("体积",3); String type; Integer index; GoodsUnitEnum(String type, Integer index) { this.type = type; this.index = index; } public String getType() { return type; } public Integer getIndex() { return index; } /** * 通过index获取value * @param index 枚举索引 * @return 枚举值 */ public static String getValue(Integer index) { for (GoodsUnitEnum c : GoodsUnitEnum.values()) { if (Objects.equals(c.getIndex(), index)) { return c.type; } } return null; } /** * 通过value获取index * @param type 枚举值 * @return 枚举索引 */ public static String getIndex(String type) { for (GoodsUnitEnum c : GoodsUnitEnum.values()) { if (Objects.equals(c.getType(), type)) { return c.index+""; } } return "error"; } }
2,(扩展)获取该枚举类中所有选择项:
package com.yjl.util; import com.yjl.enums.GoodsUnitEnum; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class EnumUtil { public static List<Map<String, String>> getGoodsUnitEnum() { List<Map<String, String>> lm = new ArrayList<>(); Map<String, String> m; for (int i = 0; i < GoodsUnitEnum.values().length; i++) { m = new HashMap<>(); m.put("id", GoodsUnitEnum.values()[i].getIndex() + ""); m.put("type", GoodsUnitEnum.values()[i].getType() + ""); lm.add(m); } return lm; } }
3,(使用)简单使用一下;
可以通过名称获取类型;可以通过类型获取名称;也可以索引。