我尝试过
Array a = resultSet.getArray("IDS");
Object[] idsArray = (Object[]) a.getArray();
List<Long> idsList = new ArrayList<>();
for(Object obj : idsArray) {
idsList.add((Long) obj); -----> (java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer)
}
抛出异常。然后,如果我将列表更改为Integer并强制转换为Integer,则会抛出java.lang.Integer不能强制转换为java.lang.Long(异常与上面相同,但相反)
更多详细信息:H2数据库表中的数组数据类型具有BIGINT值
有什么解决办法吗?
答案 0 :(得分:0)
这是因为您不能将Long强制转换为Integer。因为您使用的是对象数组,所以对象是整数。您需要告诉您的代码,您得到的对象是一个整数,如果您想转换为Long,则只需执行此操作。
Object[] idsArray = {new Integer(1)};
List<Long> idsList = new ArrayList<>();
for(Object obj : idsArray) {
idsList.add(new Long((Integer) obj));
}