我不斷收到此錯誤:線程「main」java.lang.NullPointerException中的異常。我不知道這裏有什麼問題..多維字符串數組上的NullPointerException
String[][][][] fourDArray = new String[numOfModules+1][3][][];
String[] x = new String[1];
x[0] = splitArray[0];
fourDArray[0][0][0] = x;
我不斷收到此錯誤:線程「main」java.lang.NullPointerException中的異常。我不知道這裏有什麼問題..多維字符串數組上的NullPointerException
String[][][][] fourDArray = new String[numOfModules+1][3][][];
String[] x = new String[1];
x[0] = splitArray[0];
fourDArray[0][0][0] = x;
當您定義多維數組時,您必須定義至少第一維大小。這是最初的數組。所有其他尺寸僅爲子陣列。這個可能沒有定義,也就是說,當你閱讀它時你會得到NPE。
隨着步驟到步驟:
定義一條4維數組。這意味着我們定義了一維數組有2個元素,其中每個元素是trhee-dimension數組是Object
,那麼默認值是null
。
int[][][][] arr = new int[2][][][];
然後我們可以用同樣的方式下一維工作。
arr[0] = new int[2][][];
arr[1] = new int[2][][];
這就是爲什麼你NPE。您必須手動用新語句定義所有維(JVM不會自動執行)。
陣列中第3和第4維的大小是未知的,導致錯誤。
請指定大小,如果你需要使用它。
就是這樣。
String[][][][] fourDArray = new String[10][3][6][7];
可以在初始化時不分配(定義大小)維度,但如果您嘗試在分配之前訪問它,則不會工作。這就是你的代碼與第三維發生的事情。
//Since you are going to access 3rd dimension later, you will have to allocate it
String[][][][] fourDArray = new String[numOfModules + 1][3][3][];
String[] x = new String[1];
x[0] = "some_string";
//So, it is OK to access (index by) 3rd dimension
fourDArray[0][0][0] = x;
很明顯,你沒有限定的第三和第四尺寸大小 –
當陣列的大小(或它的尺寸)不被聲明,則不能使用。它還沒有第0個元素。如果你希望它是動態的,你必須使用'ArrayList' –