Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

null pointer exception on adding string object to arraylist

Cant get around this. Null Pointer exception occurs when trying to add a String object to an ArrayList. Trouble is, I believe I have already initialized the 'temp' ArrayList properly. Please help.

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));
    }
}
like image 992
Mkl Rjv Avatar asked Feb 22 '26 19:02

Mkl Rjv


2 Answers

The error is with the line

temp = null;

You are not reinitializing temp again.

if you move the line

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

between the two for loops all should be fine.

like image 63
Sachin Kainth Avatar answered Feb 26 '26 03:02

Sachin Kainth


At the last step of i loop you are setting temp to null instead of setting it to a new array using new ArrayList<String>();. This will cause temp.add(newHeaders[j]); to through the null pointer exception.

change

temp = null;

to

temp = new ArrayList<String>();
like image 29
Arun P Johny Avatar answered Feb 26 '26 01:02

Arun P Johny