将Object[]转换为int[]时出现错误

7

可能重复:
{{link1:如何在Java中将List<Integer>转换为int[]?}}

我有一个ArrayList,当我尝试将其转换为整数数组时,因为我需要执行与整数相关的操作,我会得到以下错误:

不兼容类型
需要:int[]
找到:java.lang.Object[]

这是我的代码:

List<Integer> ids_rdv = new ArrayList<Integer>();

// I execute an SQL statement, then :
while (resultat.next()) {
    ids_rdv.add(resultat.getInt("id_rdv"));
}
int[] element_rdv_id = ids_rdv.toArray(); //Problem

你有任何想法吗?

2个回答

7

假设您的原始对象是 Integer 类的实例:

Integer[] element_rdv_id = ids_rdv.toArray(new Integer[0]);

谢谢!现在它可以工作了!但我仍然不明白你做了什么? - user1079425
1
仅仅使用 Integer 并不等同于 int 数据类型。此外,如果您稍后需要从这个 Integer[] 数组中获取任何值,您可能需要使用 element_rdv_id[i].intValue() 而不是您所期望的 element_rdv_id[i] - Havelock
谢谢@Havelock :) new Integer[0] 怎么样? - user1079425
请在这里查看。 - Havelock

0
incompatible types required: int[] found: java.lang.Object[]

当你执行 ids_rdv.toArray() 时,它返回一个对象数组,不能分配给基本整数类型的数组。
您需要获得一个整数对象数组,请按以下方式编写
Integer[] element_rdv_id = ids_rdv.toArray(new Integer[]);

谢谢你,Ahmad。我现在明白了,已经点赞了 ;) - user1079425

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接