歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java動態定義二維數組問題

想將查詢數據庫的內容復制到二維數組中,但是總是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