|
@@ -1,27 +1,38 @@
|
|
|
package com.yonge.cooleshow.common.config;
|
|
|
|
|
|
-import com.google.common.collect.Maps;
|
|
|
import com.yonge.toolset.base.enums.BaseEnum;
|
|
|
import org.springframework.core.convert.converter.Converter;
|
|
|
import org.springframework.core.convert.converter.ConverterFactory;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
@Component
|
|
|
public class EnumConverterFactory implements ConverterFactory<Object, BaseEnum<?, ?>> {
|
|
|
- @SuppressWarnings("rawtypes")
|
|
|
- private static final Map<Class, Converter> CONVERTERS = Maps.newHashMap();
|
|
|
+
|
|
|
+ //@SuppressWarnings("rawtypes")
|
|
|
+ //private static final Map<Class, Converter> CONVERTERS = Maps.newHashMap();
|
|
|
|
|
|
@Override
|
|
|
public <T extends BaseEnum<?, ?>> Converter<Object, T> getConverter(Class<T> targetType) {
|
|
|
- Converter<Object, T> converter = CONVERTERS.get(targetType);
|
|
|
+
|
|
|
+ return source -> {
|
|
|
+ T ret = null;
|
|
|
+
|
|
|
+ for (T t : targetType.getEnumConstants()) {
|
|
|
+
|
|
|
+ // 枚举类型为字符串
|
|
|
+ if (t.getCode().equals(source)) {
|
|
|
+ ret = t;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return ret;
|
|
|
+ };
|
|
|
+
|
|
|
+ /*Converter<Object, T> converter = CONVERTERS.get(targetType);
|
|
|
if (converter == null) {
|
|
|
converter = new EnumConverter<>(targetType);
|
|
|
CONVERTERS.put(targetType, converter);
|
|
|
}
|
|
|
- return converter;
|
|
|
-
|
|
|
+ return converter;*/
|
|
|
}
|
|
|
|
|
|
}
|