2012-07-18 192 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元素。

希望这会有所帮助!