我想构建一个可以Field
通过 Java 反射将字符串值转换为给定对象数据类型的方法。
这是我的代码:
String value = ...;
Class<? extends MyObject> clazz = getClazz();
Field f = clazz.getDeclaredField("fieldName");
boolean fieldIsAccessible = f.isAccessible();
if (!fieldIsAccessible) {
f.setAccessible(true);
}
f.getType().cast(value);
if (!fieldIsAccessible) {
f.setAccessible(false);
}
当我第一次尝试运行此代码时,我收到此异常java.lang.ClassCastException
。
我想转换value
为 class java.math.BigDecimal
。
我的代码缺少什么?
编辑: 查看我想出的解决方案。