[英]Object[] cannot be converted to Integer[]
使用 toArray 方法将 TreeSet 对象转换为数组,但出现错误:
Object[] cannot be converted to Integer[]
这是代码:
public static void main (String[] args) {
TreeSet elems = new TreeSet<Integer>();
int[] elemsToAdd = {1,2,3,4};
for(int i = 0; i < elemsToAdd.length; i++){
elems.add(elemsToAdd[i]);
}
Integer[] elemsArray = elems.toArray(new Integer[elems.size()]);
}
我已经搜索了其他线程的答案,但是他们都建议使用 toArray 方法和一个整数数组作为参数,但我的仍然抛出错误。
那是由于您使用了原始类型。 当elems
被定义为原始TreeSet
, elems.toArray
返回一个Object[]
,而不是一个Integer[]
。
改变
TreeSet elems = new TreeSet<Integer>();
到
TreeSet<Integer> elems = new TreeSet<Integer>();
Erans Answer 解决了错误,但我也想做出我的贡献
TreeSet<T>
接受任何对象类型,使其成为TreeSet<Integer>
将允许您将Integer
值放在 TreeSet 中,以下是定义它的方法
TreeSet<Integer> elems = new TreeSet<>();
您正在使用一个常规循环,在您的案例工作示例中可以用 for-each 替换
for (int anElemsToAdd : elemsToAdd) {
elems.add(anElemsToAdd);
}
最后,您不需要定义new Integer[elems.size()]
其大小将其定义为elems.toArray(new Integer[0])
就足够了
在所有更改之后,这是最终结果
public static void main(String[] args) {
TreeSet<Integer> elems = new TreeSet<>();
int[] elemsToAdd = {1, 2, 3, 4};
for (int anElemsToAdd : elemsToAdd) {
elems.add(anElemsToAdd);
}
Integer[] elemsArray = elems.toArray(new Integer[0]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.