enumClass.getName()
}));
}
Map entryMap = getEnumEntryMap(enumClass);
EnumType enumType = (EnumType) entryMap.get(enumClass.getName());
if (enumType == null) {
Method createEnumTypeMethod = findStaticMethod(enumClass,
EnumConstant.CREATE_ENUM_TYPE_METHOD_NAME,
new Class[0]);
if (createEnumTypeMethod != null) {
try {
enumType = (EnumType) createEnumTypeMethod.invoke(null, new Object[0]);
} catch (IllegalAccessException e) {
} catch (IllegalArgumentException e) {
} catch (InvocationTargetException e) {
} catch (ClassCastException e) {
}
}
if (enumType != null) {
entryMap.put(enumClass.getName(), enumType);
// 在JDK5下面,class loader完成并不意味着所有的常量被装配
// 下面的代码强制装配常量。
enumType.populateNames(enumClass);
}
}
if (enumType == null) {
throw new UnsupportedOperationException(MessageFormat.format(EnumConstant.FAILED_CREATING_ENUM_TYPE,