Java 向ArrayList添加类,但得到NullPointerException
所以,我试图向ArrayList添加一个类,但当我添加时,它会给我一个空指针异常。我确信我只是忽略了一个我认为已经初始化的变量,但我无法理解它 这是一节课:Java 向ArrayList添加类,但得到NullPointerException,java,arraylist,nullpointerexception,Java,Arraylist,Nullpointerexception,所以,我试图向ArrayList添加一个类,但当我添加时,它会给我一个空指针异常。我确信我只是忽略了一个我认为已经初始化的变量,但我无法理解它 这是一节课: enum WebType { GoogleResult, Webpage }; public class Webpage { WebType type; String pageName; String content; String url; String MLA = ""; public Webpage(String pageNam
enum WebType { GoogleResult, Webpage };
public class Webpage {
WebType type;
String pageName;
String content;
String url;
String MLA = "";
public Webpage(String pageName, String content, String url, WebType type){
this.type = type;
this.pageName = pageName;
this.content = content;
this.url = url;
this.MLA = ""; // Temp
}
// TODO: Make Citation Maker
}
这是我将类添加到ArrayList的位置:
public void Start(){
for(Integer i = 0; i < tags.size(); i++){
if(tags.get(i) == null)
return;
Webpage page = Google(tags.get(i));
parseList.add(page); // The Error is on this line!
log.append("Added " + page.url + " to parse list");
}
for(Integer i = 0; i < parseList.size(); i++){
ParsePageCode(parseList.get(i));
}
}
有什么想法吗?在引发异常的行中,parseList是唯一被取消引用的变量。该行中唯一的另一个变量是page,page是否为null无关紧要,因为您可以将null元素添加到列表中。因此,必须是parseList导致NPE。实际上,将
null
添加到对象集合中没有问题。检索对象并稍后调用其成员可能会导致NPE
您已经告知,问题出在添加对象的行上。导致
NPE
的唯一方法是在null
时调用add()
。这就是尚未初始化的集合parseList
。可能它是类中的一个字段,从未初始化为类型为ArrayList
的实际对象,但它只是声明的。parsellist是null@RoyalBg谢谢!你应该把它作为一个答案,这样我就可以批准它@嗯,你实际上是在评论中宣布的……是的,有时候忽略一些简单的事情太容易了
public Webpage Google(String search){
String url = "https://www.google.com/search?q=" + search;
String content = "";
try {
URLEncoder.encode(url, "UTF-8");
} catch (UnsupportedEncodingException e) {
log.append("\n Unsupported Encoding Contacting Google");
}
try {
content = GetPageCode(url);
} catch (IOException e) {
log.append("\n Unable To Reach Google");
log.append(e.getMessage());
}
Webpage w = new Webpage("Google Result For " + search, content, url, WebType.GoogleResult);
// System.out.println(search + url + WebType.GoogleResult);
return w;
}