diff --git a/src/main/java/org/redkale/convert/ext/EnumSimpledCoder.java b/src/main/java/org/redkale/convert/ext/EnumSimpledCoder.java
index 24dd3d80c..13a7bc8f5 100644
--- a/src/main/java/org/redkale/convert/ext/EnumSimpledCoder.java
+++ b/src/main/java/org/redkale/convert/ext/EnumSimpledCoder.java
@@ -1,94 +1,100 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.redkale.convert.ext;
-
-import java.lang.reflect.*;
-import java.util.*;
-import org.redkale.convert.*;
-import org.redkale.util.RedkaleClassLoader;
-
-/**
- * 枚举 的SimpledCoder实现
- *
- *
- * 详情见: https://redkale.org
- *
- * @author zhangjx
- * @param Reader输入的子类型
- * @param Writer输出的子类型
- * @param Enum的子类
- */
-public final class EnumSimpledCoder extends SimpledCoder {
-
- private final Encodeable valueEncoder;
-
- private final Map enumToValues;
-
- private final Map valueToEnums;
-
- public EnumSimpledCoder(final ConvertFactory factory, Class type) {
- this.type = type;
- ConvertEnumValue cev = type.getAnnotation(ConvertEnumValue.class);
- if (cev == null) {
- this.valueEncoder = null;
- this.enumToValues = null;
- this.valueToEnums = null;
- } else {
- try {
- String fieldName = cev.value();
- Field field = type.getDeclaredField(fieldName);
- RedkaleClassLoader.putReflectionField(fieldName, field);
- char[] chs = fieldName.toCharArray();
- chs[0] = Character.toUpperCase(chs[0]);
- String methodName = "get" + new String(chs);
- Method method = type.getMethod(methodName);
- RedkaleClassLoader.putReflectionMethod(methodName, method);
- Map map1 = new HashMap<>();
- Map map2 = new HashMap<>();
- for (E e : type.getEnumConstants()) {
- map1.put(e, method.invoke(e));
- map2.put(method.invoke(e).toString(), e);
- }
- this.valueEncoder = factory.loadEncoder(field.getType());
- this.enumToValues = map1;
- this.valueToEnums = map2;
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- @Override
- public void convertTo(final W out, final E value) {
- if (value == null) {
- out.writeNull();
- } else if (valueEncoder != null) {
- valueEncoder.convertTo(out, enumToValues.get(value));
- } else {
- out.writeSmallString(value.toString());
- }
- }
-
- @Override
- @SuppressWarnings("unchecked")
- public E convertFrom(final R in) {
- String value = in.readSmallString();
- if (value == null) {
- return null;
- }
- if (valueToEnums != null) {
- return valueToEnums.get(value);
- } else {
- return (E) Enum.valueOf((Class) type, value);
- }
- }
-
- @Override
- public Class getType() {
- return (Class) type;
- }
-
-}
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.redkale.convert.ext;
+
+import java.lang.reflect.*;
+import java.util.*;
+import org.redkale.convert.*;
+import org.redkale.util.RedkaleClassLoader;
+
+/**
+ * 枚举 的SimpledCoder实现
+ *
+ *
+ * 详情见: https://redkale.org
+ *
+ * @author zhangjx
+ * @param Reader输入的子类型
+ * @param Writer输出的子类型
+ * @param Enum的子类
+ */
+public final class EnumSimpledCoder extends SimpledCoder {
+
+ private final Encodeable valueEncoder;
+
+ private final Map enumToValues;
+
+ private final Map valueToEnums;
+
+ public EnumSimpledCoder(final ConvertFactory factory, Class type) {
+ this.type = type;
+ ConvertEnumValue cev = type.getAnnotation(ConvertEnumValue.class);
+ if (cev == null) {
+ this.valueEncoder = null;
+ this.enumToValues = null;
+ this.valueToEnums = null;
+ } else {
+ try {
+ String fieldName = cev.value();
+ Field field = type.getDeclaredField(fieldName);
+ RedkaleClassLoader.putReflectionField(fieldName, field);
+ char[] chs = fieldName.toCharArray();
+ chs[0] = Character.toUpperCase(chs[0]);
+ String methodName = "get" + new String(chs);
+ Method method = null;
+ try {
+ method = type.getMethod(methodName);
+ } catch (NoSuchMethodException | SecurityException me) {
+ method = type.getMethod(fieldName);
+ methodName = fieldName;
+ }
+ RedkaleClassLoader.putReflectionMethod(methodName, method);
+ Map map1 = new HashMap<>();
+ Map map2 = new HashMap<>();
+ for (E e : type.getEnumConstants()) {
+ map1.put(e, method.invoke(e));
+ map2.put(method.invoke(e).toString(), e);
+ }
+ this.valueEncoder = factory.loadEncoder(field.getType());
+ this.enumToValues = map1;
+ this.valueToEnums = map2;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ @Override
+ public void convertTo(final W out, final E value) {
+ if (value == null) {
+ out.writeNull();
+ } else if (valueEncoder != null) {
+ valueEncoder.convertTo(out, enumToValues.get(value));
+ } else {
+ out.writeSmallString(value.toString());
+ }
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public E convertFrom(final R in) {
+ String value = in.readSmallString();
+ if (value == null) {
+ return null;
+ }
+ if (valueToEnums != null) {
+ return valueToEnums.get(value);
+ } else {
+ return (E) Enum.valueOf((Class) type, value);
+ }
+ }
+
+ @Override
+ public Class getType() {
+ return (Class) type;
+ }
+
+}