我正在尝试将字符串列表添加到HashMap中,我在下面显示了自己的尝试方式。但是我得到了空值异常(我在代码中注释了获得异常的地方)。任何人都可以发现我在犯什么错误。
private List<Product> mCartList;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
List<String> listdescription = new ArrayList<String>();
List<String> listcrust = new ArrayList<String>();
List<String> listsize = new ArrayList<String>();
String descriptionString;
String crustString;
String sizeString;
for (int i = 0; i < mCartList.size(); i++) {
mCartList.get(i).selected = false;
hot_number = mCartList.size();
if (mCartList.get(i).description != null
&& !mCartList.get(i).description.isEmpty()) {
descriptionString = mCartList.get(i).description;
listdescription.add(descriptionString);
System.out.println("listdescription = " + listdescription);
}
if (mCartList.get(i).crust != null
&& !mCartList.get(i).crust.isEmpty()) {
crustString = mCartList.get(i).crust;
listcrust.add(crustString);
System.out.println("listcrust = " + listcrust);
}
if (mCartList.get(i).size != null
&& !mCartList.get(i).size.isEmpty()) {
sizeString = mCartList.get(i).size;
listsize.add(sizeString);
System.out.println("listsize = " + listsize);
}
}
listDataChild.put("listcrust", listcrust); // error occurs here
listDataChild.put("listsize", listsize);
listDataHeader.addAll(listdescription);
System.out.println("listDataChild = " + listDataChild);
System.out.println("listDataHeader = " + listDataHeader);
我已经调试并获得了listsize
88行的值,但是当我通过93行时,它给出了下面提到的异常。
异常屏幕截图
您尚未将对象分配给listDataChild成员。
看一下这些是在类级别定义的:
private List<Product> mCartList;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
重置代码在方法内部。这是正确的吗?
默认情况下,不初始化成员并将其设置为null。如果您尝试对空引用执行操作,则该操作会失败,并显示NullPointerException。
请尝试以下方法:
HashMap<String, List<String>> listDataChild = new HashMap<String, List<String>>();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句