将对象数组转换为整数数组错误

19 浏览
0 Comments

将对象数组转换为整数数组错误

可能重复:
\n如何将List转换为int[]? \n我有一个ArrayList,当我尝试将其转换为整数数组,因为我需要进行涉及整数的操作时,我得到了这个错误:\n

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

\n这是我的代码:\n

List ids_rdv = new ArrayList();
// 执行SQL语句,然后:
while (resultat.next()) {
    ids_rdv.add(resultat.getInt("id_rdv"));
}
int[] element_rdv_id = ids_rdv.toArray(); //Problem

\n你有任何想法吗?

0
0 Comments

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

当你执行ids_rdv.toArray()时,它返回的是一个对象数组,无法赋值给基本整数类型的数组。

你需要得到一个Integer对象数组,所以可以这样写

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

谢谢Ahmad,我现在明白了,已经点赞了;)

0
0 Comments

Conversion Object[] to int[] error的问题出现的原因是原始对象是Integer类的实例。解决方法是将Integer数组转换为int数组。具体方法是使用toArray方法将ArrayList转换为Object数组,然后使用Arrays类的stream方法将Object数组转换为IntStream,最后使用toArray方法将IntStream转换为int数组。

以下是解决该问题的代码片段:

ArrayList ids_rdv = new ArrayList<>();
// 添加元素到ids_rdv
// 将ArrayList转换为Object数组
Object[] element_rdv_id_object = ids_rdv.toArray();
// 将Object数组转换为IntStream,并转换为int数组
int[] element_rdv_id = Arrays.stream(element_rdv_id_object)
                            .mapToInt(obj -> (int) obj)
                            .toArray();

通过以上代码,我们可以将ArrayList中的Integer对象转换为int数组。这样,我们就可以直接使用element_rdv_id数组中的元素,而不需要使用intValue()方法。

关于`new Integer[0]`的作用,可以在这里找到更多信息。

0