2012-07-18 109 views
0

可能重複:
NullPointerException when Creating an array of object數據結構

我有在主方法的NullPointerException中,管線

array[0].name = "blue"; 

結構類別:

public class Items { 

String name = ""; 
String disc = ""; 
} 

主類:

public class ItemsTest { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     Items[] array = new Items[2]; 

      array[0].name = "blue"; //NullPointerException 
     array[0].disc = "make"; 
     array[1].name = "blue"; 
     array[1].disc = "blue"; 
      } 
} 

請幫助我如何解決這個問題。

+0

另一個:http://stackoverflow.com/questions/4067286/java-nullpointerexception-in-array – 2012-07-18 09:56:22

+0

另一個:http://stackoverflow.com/questions/8145728/nullpointerexception-being-thrown-whenever-array -member-是訪問的 – 2012-07-18 09:58:42

回答

2
Items[] array = new Items[2]; 

您必須初始化數組的每個元素,默認情況下它們是null

去創造它,

Items[] array = new Items[2]; 
//initialization 
array[0] = new Items(); 
array[0].name = "blue"; //NullPointerException 
array[0].disc = "make"; 

//initialization 
array[1] = new Items(); 
array[1].name = "blue"; 
array[1].disc = "blue"; 
0
Items[] array = new Items[2]; // Creates an array of Items with null values 

因此必須使用

Items[] array = { new Items(), new Items() }; // as suggested by aioobe.... 

或需要intia莉莎像

array[0] = new Items(); 
1

當寫的線的陣列:

Items[] array = new Items[2]; 

您初始化的類型的項目,其可包含2個元素,或者換言之的數組,你只初始化容器。

陣列中的每個元素都是一個對象,也需要初始化,並解決array[0].name當你試圖訪問內部元件這是目前null 如果您要檢查Jigar喬希answer,你會看到他也初始化數組內的每個Items元素。

希望這會有所幫助!