Java泛型NullPointerException
我想使用泛型创建一个通用堆栈Java泛型NullPointerException,java,generics,nullpointerexception,Java,Generics,Nullpointerexception,我想使用泛型创建一个通用堆栈 public class UniversalStack<E> implements StackInterface<E> { private E[] stack; private int dim; private int index; @SuppressWarnings("unused") public UniversalStack(int dim) { this.dim=di
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;
}
}
}
你能解释一下我做错了什么吗?如果我犯了一个愚蠢的错误,不要对我苛刻,我是一个初学者,所以我真的知道的不多 您正在构造函数中声明
堆栈
,而不是分配给外部堆栈
:
E[] stack = (E[]) new Object[dim];
应该是
stack = (E[]) new Object[dim];
因此,
堆栈
在推送中使用时为空,您在构造函数中声明堆栈
,而不是分配给外部堆栈
:
E[] stack = (E[]) new Object[dim];
应该是
stack = (E[]) new Object[dim];
因此,stack
在push
中使用时为空,只需使用已经存在于Java中的stack类即可
Stack<Integer> stack = new Stack<Integer>();
Stack Stack=新堆栈();
这里有更多文档只需使用已经存在的Java堆栈类即可
Stack<Integer> stack = new Stack<Integer>();
Stack Stack=新堆栈();
这里有更多的文档是的,就是这样。。直到我在这里发布后再次阅读它,我才意识到我重新声明了堆栈成员。谢谢我认为eclipse试图警告您,但您添加了suppresswarnings注释:-)是的,就是这样。。直到我在这里发布后再次阅读它,我才意识到我重新声明了堆栈成员。谢谢我认为eclipse试图警告您,但您添加了suppresswarnings注释:-)我很困惑,为什么这需要一个-1?他试图使用堆栈,我建议他使用已经存在的堆栈实现?使用现有的、经过验证的和真实的东西似乎比编写自己的东西更好……我很困惑,为什么这需要a-1?他试图使用堆栈,我建议他使用已经存在的堆栈实现?使用现有的、经过验证的、真实的东西似乎比写自己的东西更好。。。。