我想使用泛型構建一個通用棧。Java泛型空指針異常
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)
你能解釋我什麼我做錯了?如果我犯了一個愚蠢的錯誤,不要對我苛刻,我是一個初學者,所以我不太瞭解。
啊,這是它。我不知道我再聲明的堆疊成員,直到我看了一遍後,我張貼在這裏。謝謝 ! – Teo 2012-02-16 17:39:35
我認爲日食試圖警告你,但你添加了suppresswarnings註釋:-) – 2012-02-16 17:45:43