繁体   English   中英

将字符串对象添加到arraylist时出现空指针异常

[英]null pointer exception on adding string object to arraylist

不能绕过这个。 尝试将String对象添加到ArrayList时发生空指针异常。 麻烦的是,我相信我已经正确初始化了'temp'ArrayList。 请帮忙。

void initialConbinations(String[] headers) {
    //Dataset is SN,FN,RN,PN
    //Map the headers to the appropriate portions
    String[] newHeaders = {"SN,high", "SN,medium", "SN,low", "FN,high", "FN,medium", "FN,low", "RN,high", "RN,medium", "RN,low"};
    List<List> assRuleHeaders = new ArrayList<List>();
    ArrayList<String> temp = new ArrayList<String>();

    //Use bitwise shifting to do the rest
    int k = 0, l = 0;
    for (int i = 1; i < 511; i++) {
        for (int j = 0; j < 9; j++) {
            l = i;
            k = (l >> j) & 0x00000001;
            if (k == 1) {
                System.out.println(k + " , " + i + " , " + j);
                System.out.println(newHeaders[j]);
                temp.add(newHeaders[j]);    //Getting a Null Pointer Exception here
            }
        }
        assRuleHeaders.add(temp);
        temp = null;
    }

    for (int i = 0; i < assRuleHeaders.size(); i++) {
        this.printArray(assRuleHeaders.get(i));
    }
}

该错误与该行有关

temp = null;

你是不是重新初始化temp试。

如果你移动线

ArrayList<String> temp = new ArrayList<String>();

在两个for循环之间都应该没问题。

i循环的最后一步,您将temp设置为null,而不是使用new ArrayList<String>();将其设置为新数组new ArrayList<String>(); 这将导致temp.add(newHeaders[j]); 通过空指针异常。

更改

temp = null;

temp = new ArrayList<String>();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM