昨天,想將查詢資料庫的內容複寫到二維數組中,但是總是NullPointerException,提示null 指標的異常。
反正我是自己研究了一個晚上,百度上看了很多的關於動態初始化二維數組的文章,但是就是沒找到我這種情況的。
無奈之下,我厚著臉皮向我的指導老師發出了請求的郵件,老師在百忙之中,還是很細心的為我解答。我看到老師回複的郵件豁然開朗。
下面將郵件的內容與大家分享!
Code:
- //對於自訂的類,當用它定義對象數組時,不僅要初始化元素的個數,還要new出每個數組元素,
- //才真正初始化出了對象數組,才可以進行賦值等操作,否則就會出現NullPointerException(null 指標異常)!
- class MultiDimensionArray // 一個自訂的類,用於定義**數組來測試用。
- {
- public int a; // 定義成員變數a
- public int b; // 定義成員變數b
-
- public MultiDimensionArray() // 無參建構函式
- {
- this.a = 0;
- this.b = 0;
- }
-
- public MultiDimensionArray(int i, int j) // 有參建構函式
- {
- this.a = i;
- this.b = j;
- }
- }
-
- public class ArrayDefinition { //在這個類中,將使用上面的類來定義對象數組。
- public static void main(String[] args) {
- MultiDimensionArray objArray[][] = new MultiDimensionArray[3][]; //按你的方式定義一個對象數組!
- objArray[0]=new MultiDimensionArray[3]; //定義第一行的列數
-
- objArray[0][0].a = 88;//此時這一句就出現NullPointerException,因為對象objArray[0][0]本身還沒new出來!
-
- objArray[0][0]=new MultiDimensionArray(); //new出objArray[0][0]來,給該分配了空間。
-
- objArray[0][0].a = 88; //此時這條語句就沒錯了。
- //同理,對於自訂對象數組,要通過迴圈new出每個元素之後,才可以給它們賦值!
- }
- }
最後,再次感謝一下老師!老師真的很有耐心!
ps:我的新部落格地址:http://www.xinghaixu.com