2011-08-21 35 views
0

如何将NullPointerException并入以下push() Java中的堆栈方法?Java中Stack的push()方法中的NullPointerException

public void push(E e) { 
     int len = size(); 
     if (len == 0) 
      throw new NullPointerException(); 
     else 
      addElement(e); 
     System.out.println("The element pushed is " + e); 
    } 

在PSVM,每当我调用push()方法它给出了不添加到堆栈中的空指针异常。

public static void main(String[] args) { 
     try { 
      SortableStack<Object> s = new SortableStack<Object>(); 
      s.push(10); 
      s.push(20); 
      System.out.println("The element popped is " + s.pop()); 
     } 
     catch (NullPointerException e) { 
      System.out.println("Null Pointer Exception encountered!"); 
     } 
} 

回答

0

我不是100%确定你想要达到的目标,但你应该检查null -ness的e,堆的不是大小:

public void push(E e) { 
    if (e == null) { 
     throw new NullPointerException("Can't push a null element"); 
    } 

    addElement(e); 
    System.out.println("The element pushed is " + e); 
} 
+0

非常感谢!工作顺利,快捷! –

+0

不客气! :) – Behrang

+0

@Zeeshan,不要忘记标记答案为[“Accepted”](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 ) –

0

嗯,我想这是因为当你创建对象时,它的初始大小是零。当你打电话给push时,它确实检查了(if len == 0),发现它为零,因此引发了一个n!

相关问题