【发布时间】:2014-06-30 13:11:30
【问题描述】:
我正在使用反射将 ResultSet 映射到 bean 中的 Field。
field = clazz.getDeclaredField(str);
field.setAccessible(true);
Object resultSetObject = rs.getObject(str);
Class fieldType = field.getType();
field.set(clazzInst, fieldType.cast(resultSetObject));
问题是resultSetObject 是Integer 类型,fieldType 是 Long,我无法将 Intger 转换为 Long 并获得 ClassCastException。
【问题讨论】:
-
在那个问题中,您明确知道您必须将 Integer 转换为 Long,但在这里我不知道它们的类型
-
强制转换对对象的类型没有任何作用。
-
@SotiriosDelimanolis 你能详细说明一下吗?
-
为什么是Integer类型的ResultSet派生对象,而目标字段是Long类型? (注意,我怀疑它实际上是相反的。)这里的 real 解决方案是确保您的 Java 和 SQL 数据模型匹配。
标签: java reflection casting resultset