2014-09-26 76 views
0

功能我有的Java正從對象類型

public Object get(int index) 
    { 
     if (index <= 0) 
      return null; 

     Node Current = head.getNext(); 
     for (int i = 1; i < index; i++) { 
      if (Current.getNext() == null) 
       return null; 

      Current = Current.getNext(); 
     } 
     return Current.getData(); 
    } 

這種方法鏈表來獲得在索引中的東西。這是一個繪畫對象,我想在Painting類中使用getTitle方法獲得繪畫的標題。

這裏是我試圖做的,

for(int i = 0; i < paintings.size(); i++){ 
     Painting x = (Painting) paintings.get(i); 
     System.out.println((i+1) + ": " + x.getTitle()); 
} 

不幸的是,在x.getTitle()的Java變得非常鹹,並給出一個空指針異常。我已經嘗試了多種不同的演員陣容,我只是個人迷失方向。任何幫助將深表感謝。

+0

爲什麼不告訴我們'getTitle()'方法? – blackSmith 2014-09-26 05:40:31

+1

@blackSmith在這裏不需要。 – 2014-09-26 05:45:49

回答

2

您應該有驗證,因爲x可以是null。當x=null,x.getTitle()變成null.getTitle()這導致NullPointerException

Painting x = (Painting) paintings.get(i); 
System.out.println((i+1) + ": " + (x!=null?x.getTitle():"x is null")); 
+0

其實我已經意識到我真正的問題是我的鏈表第一個索引實際上是1而不是0,但是這也有助於將鏈表清空並且用戶打印出它的內容,所以謝謝。 – 2014-09-26 13:29:31

2

您正在返回null如果沒有出現該索引處,然後做x(null).getTitle()造成NullPointerException

只需在調用方法之前添加空檢查。