| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.common.utils; |
| | | |
| | | |
| | | import com.ruoyi.common.enums.BaseEnum; |
| | | |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * éç¨æä¸¾å·¥å
·ç±» |
| | | * éç¨äºææå®ç° BaseEnum æ¥å£çæä¸¾ |
| | | * |
| | | * @author Bu |
| | | */ |
| | | public class EnumUtil { |
| | | |
| | | /** |
| | | * æ ¹æ® code è·åæä¸¾å®ä¾ |
| | | */ |
| | | public static <E extends Enum<E> & BaseEnum> E fromCode(Class<E> enumClass, int code) { |
| | | for (E e : enumClass.getEnumConstants()) { |
| | | if ((int)e.getCode() == code) { |
| | | return e; |
| | | } |
| | | } |
| | | throw new IllegalArgumentException("æªç¥ç code: " + code + " å¯¹äºæä¸¾ " + enumClass.getSimpleName()); |
| | | } |
| | | |
| | | public static <E extends Enum<E> & BaseEnum> E fromCodeHasNull(Class<E> enumClass, int code) { |
| | | for (E e : enumClass.getEnumConstants()) { |
| | | if ((int)e.getCode() == code) { |
| | | return e; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public static <E extends Enum<E> & BaseEnum> E fromCodeHasDefault(Class<E> enumClass, int code,E defaultE) { |
| | | for (E e : enumClass.getEnumConstants()) { |
| | | if ((int)e.getCode() == code) { |
| | | return e; |
| | | } |
| | | } |
| | | return defaultE; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * æ ¹æ® value è·åæä¸¾å®ä¾ |
| | | */ |
| | | public static <E extends Enum<E> & BaseEnum> E fromValue(Class<E> enumClass, String value) { |
| | | for (E e : enumClass.getEnumConstants()) { |
| | | if (Objects.equals(e.getValue(), value)) { |
| | | return e; |
| | | } |
| | | } |
| | | throw new IllegalArgumentException("æªç¥ç value: " + value + " å¯¹äºæä¸¾ " + enumClass.getSimpleName()); |
| | | } |
| | | |
| | | /** |
| | | * è·åæææä¸¾é¡¹å表 |
| | | */ |
| | | public static <E extends Enum<E> & BaseEnum> List<E> listAll(Class<E> enumClass) { |
| | | return Arrays.asList(enumClass.getEnumConstants()); |
| | | } |
| | | |
| | | /** |
| | | * 转为 List<Map>ï¼éåè¿åç»åç«¯ï¼ |
| | | * æ ¼å¼: [{ "code": 1, "value": "ç»çº¿" }, ...] |
| | | */ |
| | | public static <E extends Enum<E> & BaseEnum> List<Map<String, Object>> toList(Class<E> enumClass) { |
| | | return Arrays.stream(enumClass.getEnumConstants()) |
| | | .map(e -> { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("key", e.getCode().toString()); |
| | | map.put("value", e.getValue()); |
| | | return map; |
| | | }) |
| | | .collect(Collectors.toList()); |
| | | } |
| | | |
| | | // /** |
| | | // * 转为 Map<Integer, String> |
| | | // * æ ¼å¼: { 1: "ç»çº¿", 0: "æä¸" } |
| | | // */ |
| | | // public static <E extends Enum<E> & BaseEnum> Map<Integer, String> toMap(Class<E> enumClass) { |
| | | // return Arrays.stream(enumClass.getEnumConstants()) |
| | | // .collect(Collectors.toMap((BaseEnum::getCode, BaseEnum::getValue)); |
| | | // } |
| | | // |
| | | // |
| | | // public static void main(String[] args) { |
| | | // // â
1. æ ¹æ® code è·åæä¸¾ |
| | | // StockRecordTypeEnum status = EnumUtil.fromCode(StockRecordTypeEnum.class, 1); |
| | | // System.out.println(status.getValue()); // ç»çº¿ |
| | | // |
| | | // // â
2. 转æ list (éåå端) |
| | | // System.out.println(EnumUtil.toList(StockRecordTypeEnum.class)); |
| | | // // è¾åº: [{code=1, value=ç»çº¿}, {code=0, value=æä¸}] |
| | | // |
| | | // // â
3. 转æ map |
| | | // System.out.println(EnumUtil.toMap(StockRecordTypeEnum.class)); |
| | | // // è¾åº: {1=ç»çº¿, 0=æä¸} |
| | | // } |
| | | } |