2012-09-17 78 views
0

有人可以告訴我爲什麼我得到null pointer exception與此代碼?在我Nutrition類,我實現一個hash mapNULL指針使用hashmap

public class Nutrition implements Serializable{ 

private final String TAG = Nutrition.class.getSimpleName(); 
//class variables 
    ... 

//hash map declaration 
HashMap<String, String> nutrition; 

public Nutrition(JSONObject jo) throws JSONException{ 

    //create hash map 
    this.nutrition = new HashMap<String, String>(); 



    //place data in hashmap 
    this.serving_size = jo.optString("serving_size"); 
    nutrition.put("serving_size", serving_size); 
    Log.i(TAG, serving_size + " : Serving Size"); 
      .... 
    } 
    //method to get hashmap 
    public HashMap<String, String> getHashMap(){ 
    return nutrition; 
} 

然後在另一個班,我叫getHashMap(),我得到一個null pointer

//nutrition item 
    Nutrition nutritionInfo = dish.getNutrition(); 
    nutInfo = nutritionInfo.getHashMap(); 

有人能告訴我,我做錯了什麼,以及如何我可以修好它?

+6

大概可能是'dish'爲null,或者'dish.getNutrition()'返回null。但是你們沒有告訴我們任何一種情況,這對我們沒有任何幫助...... –

+0

我們可以得到一個堆棧跟蹤顯示哪一行導致NPE? –

+0

你在哪一行得到空指針異常?這會告訴你哪個引用是null,並且你正在調用指向null的引用上的方法,這導致NullPointerException – Shailendra

回答

1

如果dish.getNutrition()返回null,則第二行將拋出NPE。

Nutrition nutritionInfo = dish.getNutrition(); 
nutInfo = nutritionInfo.getHashMap(); 

由於您沒有向我們展示Dish類中的代碼,因此我會假定它發生在這裏。