此代码有效。它打印出列表中的值
ArrayList<String> menuItemsUrl=null;
for (int i = 0; i < modules.size(); i++) {
String tmp = modules.get(i).attr("href");
Log.d("", tmp);
}
但这会生成一个空指针。为什么?
for (int i = 0; i < modules.size(); i++) {
String tmp = modules.get(i).attr("href");
menuItemsUrl.add(tmp);
}
最佳答案
在您的代码中,您尚未初始化menuItemsUrl
,因此尚未初始化NPE。
您已经在ArrayList<String> menuItemsUrl=null;
此处声明了列表,并且当您尝试访问menuItemsUrl.add(tmp);
时,menuItemsUrl
并未指向它指向null的任何内容,这意味着没有任何内容,因此NPE要摆脱NPE,请在进行初始化之前将其初始化采用。
menuItemsUrl = new ArrayList<String>();