Java 我的构造函数赢了';t构造或;return";应该退还什么

Java 我的构造函数赢了';t构造或;return";应该退还什么,java,arraylist,constructor,Java,Arraylist,Constructor,这是我的构造器: public class OrderedIntList extends ArrayList{ public OrderedIntList(int ... elements) { ArrayList <Integer> temp = new ArrayList<Integer>(); for(int i=0; i<elements.length; i++) { temp.add(

这是我的构造器:

public class OrderedIntList extends ArrayList{


    public OrderedIntList(int ... elements) {
        ArrayList <Integer> temp = new ArrayList<Integer>();


        for(int i=0; i<elements.length; i++) {
            temp.add(elements[i]);
        }
    }

}
OrderedIntList(int... elements) {
    ArrayList temp = new ArrayList();

当我运行它时,输出是:
[]
。那么从技术上讲,建造师不会归还建造权吗?如何修复此问题?

您正在将元素添加到构造函数中的
temp
列表中,而应该像这样添加到列表中

        for(int i=0; i<elements.length; i++) {
            add(elements[i]);
         }

<代码> >(您的构造函数中的int i=0;i您初始化了本地<代码> ARARYLIST//COD>,它保存了构造函数中传递的元素,但是<代码> toStase不知道这个本地列表,并且是由继承的类-ArayLelist继承的结构所保存的打印元素。因此,请考虑将构造函数更改为

public OrderedIntList(int... elements) {
    for (int i = 0; i < elements.length; i++) {
        this.add(elements[i]);// your class extends ArrayList 
                              // so it inherited structure to store elements
                              // and toString is base on this structure
                              // not on local list declared in constructor
    }
}
public OrderedIntList(int…元素){
for(int i=0;i
您正在构造函数中创建本地ArrayList:

public class OrderedIntList extends ArrayList{


    public OrderedIntList(int ... elements) {
        ArrayList <Integer> temp = new ArrayList<Integer>();


        for(int i=0; i<elements.length; i++) {
            temp.add(elements[i]);
        }
    }

}
OrderedIntList(int... elements) {
    ArrayList temp = new ArrayList();
您应该直接写入传递的值:

public OrderedIntList(int... elements) {
    for (int i = 0; i < elements.length; i++) {
        add(elements[i]);
    }
}
public OrderedIntList(int…元素){
for(int i=0;i
添加的代码片段经常出现,类集合中存在一个实用程序函数。 我用addAll做了一个选择

public class OrderedIntList extends ArrayList<Integer> {

    public OrderedIntList(int... elements) {
        for (int element : elements) {
            add(element);
        }
    }

    public OrderedIntList(Integer... elements) {
        Collections.addAll(this, elements);
    }

}
公共类OrderedIntList扩展了ArrayList{
公共医嘱列表(int…元素){
for(int元素:元素){
添加(元素);
}
}
public OrderedIntList(整数…元素){
Collections.addAll(这个,元素);
}
}

ArrayList也是参数化的。

请格式化您的代码,不要用大写字母发布。为什么它只返回
[]
。您所做的只是将元素添加到本地ArrayList中。我知道了!非常感谢!:)我知道了!非常感谢您提供的实用功能!:)我得到了它!谢谢你,明白了!:)我得到了它!非常感谢!:)