| 123456789101112131415161718192021222324252627282930313233 |
- package com.punchsettle.server.common.converter.enums;
- import java.util.HashMap;
- import java.util.Map;
- import org.springframework.core.convert.converter.Converter;
- /**
- * 转换器 数值转换为枚举
- *
- * @author tyuio
- */
- public class IntegerToEnumConverter<T extends IJsonEnum<Integer>> implements Converter<Integer, T> {
- private final Map<Integer, T> enumMap = new HashMap<>();
- public IntegerToEnumConverter(Class<T> enumType) {
- T[] enums = enumType.getEnumConstants();
- for (T e : enums) {
- enumMap.put(e.getCode(), e);
- }
- }
- @Override
- public T convert(Integer source) {
- T t = enumMap.get(source);
- if (t == null) {
- throw new IllegalArgumentException("无法匹配对应的枚举类型");
- }
- return t;
- }
- }
|