gpt4 book ai didi

java - 创建一个与ArrayList具有类似功能的新类,添加值时出错?

转载 作者:行者123 更新时间:2023-12-01 13:13:47 25 4
gpt4 key购买 nike

import java.util.ArrayList;

public class Sequence {

private ArrayList<Integer> values;

public void Sequence(){
values = new ArrayList<Integer>();
}

public void addValue(int ad){
this.values = values;
values.add(ad);
}

public String toString(){
return values.toString();
}

public static void main(String[] args) {
Sequence a = new Sequence();
a.addValue(1);
a.addValue(2);
System.out.println(a.toString());
}
}

我不明白为什么上面的代码会出现NullPointerException

我正在尝试创建一个类似于 ArrayList 的类 Sequence,并为其提供新方法。将新值添加到 ArrayList 时,我收到 NullPointerException

最佳答案

您收到 NullPointerException 是因为您定义了方法 void Sequence() 而不是构造函数 Sequence()。因此,您在 main 方法第一行调用的构造函数是默认构造函数

默认构造函数的行为是调用父类(super class)的无参数构造函数(在本例中为 Object()),并且在本例中将保留不分配任何内容的序列。

构造函数不指定返回类型(如 void 指定没有返回类型)。在这种情况下,它的定义如下:

public Sequence() { 
values = new ArrayList<Integer>();
}

关于java - 创建一个与ArrayList具有类似功能的新类,添加值时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22624694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com