Java 无法将对象[]转换为整数[]

Java 无法将对象[]转换为整数[],java,compiler-errors,Java,Compiler Errors,使用toArray方法将TreeSet对象转换为数组,但出现错误: 对象[]无法转换为整数[] 代码如下: 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(

使用toArray方法将TreeSet对象转换为数组,但出现错误:
对象[]无法转换为整数[]

代码如下:

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()]);
 }
publicstaticvoidmain(字符串[]args){
树集元素=新树集();
int[]elemsToAdd={1,2,3,4};
for(int i=0;i

我在其他线程中搜索了答案,但是所有线程都建议使用toArray方法和整数数组作为参数,但我的线程仍然会抛出错误。

这是由于您使用了原始类型。当
elems
被定义为原始
TreeSet
时,
elems.toArray
返回
对象[]
,而不是
整数[]

改变

TreeSet elems = new TreeSet<Integer>();
TreeSet元素=新的TreeSet();

TreeSet元素=新的TreeSet();

Erans Answer解决了错误,但我也愿意做出自己的贡献

TreeSet
接受任何对象类型,使其成为
TreeSet
将允许您在TreeSet中放置
Integer
值,下面是如何定义它的

TreeSet<Integer> elems = new TreeSet<>();
最后,您不需要将
新整数[elems.size()]
定义为
elems.toArray(新整数[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]);
}
publicstaticvoidmain(字符串[]args){
树集元素=新树集();
int[]elemsToAdd={1,2,3,4};
对于(int anElemsToAdd:elemsToAdd){
元素添加(anElemsToAdd);
}
整数[]elemsArray=elems.toArray(新整数[0]);
}

实际上不需要第二个整数,
TreeSet elems=new TreeSet()
for (int anElemsToAdd : elemsToAdd) {
   elems.add(anElemsToAdd);
}
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]);
}