我有代码使用它的 setter 方法在对象上设置值。其中一个 setter 将 Enum 类型作为方法参数。代码看起来像这样:
String value = "EnumValue1";
Method setter = getBeanWriteMethod("setMyEnumValue");
Class<?> type = setter.getParameterTypes()[0];
Object convertedValue = null;
if (type.isEnum()) {
convertedValue = convertToEnum(value, type);
} else {
convertedValue = ClassUtils.convertType(value, type);
}
return convertedValue;
问题是在方法中放入什么convertToEnum
。type
我知道我可以通过迭代对象的枚举常量(或字段),匹配值来“暴力破解” 。我是否忽略了使用反射的更简单方法?(我查看了几个示例,但没有找到仅通过类知道枚举的任何地方)。