我正在使用JPA从数据库中读取一行,它提供了一个具有三个int值的Object。
我现在正在尝试将此对象转换为int[]
数组,该数组会抛出ClassCastException
并说:
Ljava.lang.Object; cannot be cast to [I
这是我的代码:
try {
utx.begin();
} catch (NotSupportedException e) {
e.printStackTrace();
} catch (SystemException e) {
e.printStackTrace();
}
Query q = em.createNativeQuery("SELECT * FROM mytable");
List<Object> objectList = q.getResultList();
for (int i = 0; i < objectList.size(); i++) {
Object object = objectList.get(i);
int[] array = (int[]) object;
}
我也试过Integer[]
。同样的例外。
有人看到了这个问题吗?我该如何施展它?
答案 0 :(得分:0)
正如所指出的,int []和Integer []存在差异。如@anabad所述,您可以关注其他SO帖子。将它转换为Integer []是一个单元,对于int [],你需要一个循环
Object[] objectArray = new Object[] { new Integer("32"), new Integer("11"), new Integer("0") };
int[] integers = new int[objectArray.length];
Integer[] objectIntArray = Arrays.copyOf(objectArray, objectArray.length,Integer[].class);
for (int i = 0; i < objectArray.length; i++) {
integers[i] = (int) objectArray[i];// works from java 7 , else
// use
// Integer.parseInt(objectArray[i].toString()
}