gpt4 book ai didi

Java 泛型 NullPointerException

转载 作者:行者123 更新时间:2023-11-29 07:16:20 25 4
gpt4 key购买 nike

我想使用泛型制作一个通用堆栈。

public class UniversalStack<E> implements StackInterface<E> {

private E[] stack;
private int dim;
private int index;

@SuppressWarnings("unused")
public UniversalStack(int dim)
{
this.dim=dim;
this.index=0;
@SuppressWarnings("unchecked")
E[] stack = (E[]) new Object[dim];


}

@Override
public void push(E el) {
// TODO Auto-generated method stub
if(index+1<dim)
{
stack[index] = el;
index=index+1;
}

}
}

一切编译成功。当我调用以下内容时出现问题:

UniversalStack<Integer> integerStack = new UniversalStack<>(10);
integerStack.push(new Integer(1));

我明白了

Exception in thread "main" java.lang.NullPointerException
at com.java.lab4.UniversalStack.push(UniversalStack.java:41)
at com.java.lab4.testStack.main(testStack.java:14)

你能解释一下我做错了什么吗?如果我犯了一个愚蠢的错误,请不要对我苛刻,我是初学者,所以我真的了解不多。

最佳答案

您在构造函数中重新声明 stack 而不是分配给外部 stack:

E[] stack = (E[]) new Object[dim];

应该是

stack = (E[]) new Object[dim];

因此 stackpush 中使用时为 null。

关于Java 泛型 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9316127/

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