有人可以告诉我为什么我得到此代码的null pointer exception吗?在我的Nutrition类中,实现了一个hash map

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();


有人可以告诉我我在做什么错以及如何解决吗?

最佳答案

如果dish.getNutrition()返回null,则第二行将引发NPE。

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


由于您尚未向我们展示Dish类中的代码,因此我认为它发生在这里。

10-06 06:19