此代码有效。它打印出列表中的值

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

09-28 14:47