2016-04-10 31 views
1

我的代碼有問題,因爲當我嘗試將字符串從arraylist分配給array時,它會拋出NullPointerException將ArrayList中的字符串分配給Java數組時,會出現NullPointerException

String[][] data = new String[idList.size()][]; 
for(int i = 1; i<=idList.size(); i++) { 
    data[i][0] = idList.get(i); 
    data[i][1] = nameList.get(i); 
    data[i][2] = hList.get(i); 
    data[i][3] = sList.get(i); 
    data[i][4] = fList.get(i); 
    data[i][5] = mList.get(i); 
    data[i][6] = osList.get(i); 
    data[i][7] = tsList.get(i); 
    data[i][8] = podList.get(i); 
    data[i][9] = pacList.get(i); 
} 

有人可以告訴我如何解決這個問題嗎?

+0

在您的調試器中,您將能夠看到'data [0]'爲'null'。我建議你初始化它們。 –

回答

1

data[i]null,因爲你初始化data包含String[]類型的idList.size()null引用。

變化

String[][] data = new String[idList.size()][]; 

String[][] data = new String[idList.size()][10]; 

這將初始化data到包含對String陣列長度10(String[10])的idList.size()引用。

0

我建議正確地定義陣列(在兩個維度)

替換此

new String[idList.size()][]; 

類似的東西

new String[idList.size()][10]; // you have 10 different lists there... 

並且在迭代for循環具有零基..

例如:

String[][] data = new String[idList.size()][10]; 
    for (int i = 0; i < idList.size(); i++) { 
     data[i][0] = idList.get(i); 
     data[i][1] = idList.get(i); 
     data[i][2] = idList.get(i); 
     data[i][3] = idList.get(i); 
    } 
相關問題