2011-08-21 186 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!