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中。我知道了!非常感谢!:)我知道了!非常感谢您提供的实用功能!:)我得到了它!谢谢你,明白了!:)我得到了它!非常感谢!:)