gpt4 book ai didi

java - 尝试创建 ArrayList 时出现 NullPointerException

转载 作者:行者123 更新时间:2023-12-02 09:39:29 26 4
gpt4 key购买 nike

我正在开发一个数组列表,它将随机图 block 添加到拼字游戏的包中。我的老师在解释事情方面做得很糟糕,所以我必须完成这一切。我已经为包创建了构造函数,并尝试创建包,但在调用时出现空指针异常。

线程“main”中出现异常 java.lang.NullPointerException 在 h2.RandBag.add(RandBag.java:11)

这是 main 中返回错误的代码:

    for (Integer ival : rbag)
System.out.println(ival);

这是我用来构建的方法。

private ArrayList<E> bag; // container
private Random rand; // random generator

//constructors
public RandomBag(){
this.bag = new ArrayList<E>();
this.rand = new Random();

public RandomBag(int seed) {
this.bag = new ArrayList<E>();
this.rand = new Random(seed);

还有迭代器,因为它返回 null,这可能是问题所在。

public Iterator<E> iterator() {

return null;
}

我尝试过返回不同的内容,但每次都会出错。迭代器还没有被解释得那么多,所以我可能会遗漏一些东西。

RandomBag<Integer> rbag = new RandomBag<Integer>(17);
for (int i = 0; i < 8; ++i)
rbag.add(10+i);

最佳答案

更好的iterator()实现

尽管我不知道您的所有要求和当前的实现,但我很确定这是一个更好的实现:

public Iterator<E> iterator() {
return bag.iterator();
}

foreach循环说明

请注意:

for (Integer ival : rbag)
System.out.println(ival);

...只是语法糖:

Iterator<Integer> it = rbag.iterator();
while (it.hasNext())
System.out.println(it.next());

这将解释NullPointerException

最佳实践

注意,如果你不想完全实现List这样的接口(interface),最好抛出一个异常,而不是简单地返回null:

public Iterator<E> iterator() {
throw new UnsupportedOperationException();
}

然后就会更清楚为什么事情还不起作用

关于java - 尝试创建 ArrayList 时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29776620/

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