|
@@ -1,19 +1,23 @@
|
|
|
package com.ym.mec.common.config;
|
|
|
|
|
|
import org.springframework.core.convert.converter.Converter;
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
|
|
|
import com.ym.mec.common.enums.BaseEnum;
|
|
|
|
|
|
-@Component
|
|
|
-public class EnumConverterConfig implements Converter<String, BaseEnum<?, ?>> {
|
|
|
+public class EnumConverter<T extends BaseEnum<?, ?>> implements Converter<String, T> {
|
|
|
+
|
|
|
+ private Class<T> enumType;
|
|
|
+
|
|
|
+ public EnumConverter(Class<T> enumType) {
|
|
|
+ this.enumType = enumType;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
- public BaseEnum<?, ?> convert(String source) {
|
|
|
- return getEnum(BaseEnum.class, source);
|
|
|
+ public T convert(String source) {
|
|
|
+ return getEnum(enumType, source);
|
|
|
}
|
|
|
|
|
|
- private <T extends BaseEnum<?, ?>> T getEnum(Class<T> targerType, String source) {
|
|
|
+ private T getEnum(Class<T> targerType, String source) {
|
|
|
for (T en : targerType.getEnumConstants()) {
|
|
|
if (en.getCode() instanceof Integer) {
|
|
|
if ((int) en.getCode() == Integer.parseInt(source.toString())) {
|