diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/handler/FlexEnumTypeHandler.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/handler/FlexEnumTypeHandler.java index 1d11eeb8..ea6d3f73 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/handler/FlexEnumTypeHandler.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/handler/FlexEnumTypeHandler.java @@ -37,17 +37,22 @@ public class FlexEnumTypeHandler> extends BaseTypeHandler { private Method getter; public FlexEnumTypeHandler(Class enumClass) { - List allFields = ClassUtil.getAllFields(enumClass, field -> field.getAnnotation(EnumValue.class) != null); Field field = allFields.get(0); + String fieldGetterName = "get"+ StringUtil.firstCharToUpperCase(field.getName()); List allMethods = ClassUtil.getAllMethods(enumClass, method -> { String methodName = method.getName(); - return methodName.equals("get" + StringUtil.firstCharToUpperCase(field.getName())); + return methodName.equals(fieldGetterName); }); enumPropertyType = field.getType(); enums = enumClass.getEnumConstants(); + + if (allMethods.isEmpty()){ + throw new IllegalStateException("Can not find \"" + fieldGetterName+"()\" method in enum: " + enumClass.getName()); + } + getter = allMethods.get(0); }