Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向ArrayList添加类,但得到NullPointerException_Java_Arraylist_Nullpointerexception - Fatal编程技术网

Java 向ArrayList添加类,但得到NullPointerException

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

所以,我试图向ArrayList添加一个类,但当我添加时,它会给我一个空指针异常。我确信我只是忽略了一个我认为已经初始化的变量,但我无法理解它

这是一节课:

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;
}