歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java動態定義二維數組問題

Java動態定義二維數組問題

日期:2017/3/1 9:55:55   编辑:Linux編程

想將查詢數據庫的內容復制到二維數組中,但是總是NullPointerException,提示空指針的異常。

反正我是自己研究了一個晚上,百度上看了很多的關於動態初始化二維數組的文章,但是就是沒找到我這種情況的。

無奈之下,我厚著臉皮向我的指導老師發出了請求的郵件,老師在百忙之中,還是很細心的為我解答。我看到老師回復的郵件豁然開朗。

下面將郵件的內容與大家分享!

//對於自定義的類,當用它定義對象數組時,不僅要初始化元素的個數,還要new出每個數組元素,
//才真正初始化出了對象數組,才可以進行賦值等操作,否則就會出現NullPointerException(空指針異常)!
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出每個元素之後,才可以給它們賦值!
}
}

Copyright © Linux教程網 All Rights Reserved