数组NullPointerException中的数据结构

时间:2012-07-18 09:54:00

标签: java arrays data-structures nullpointerexception

  

可能重复:
  NullPointerException when Creating an array of object

我在main方法中有行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";
           }
}

请帮我解决此问题。

3 个答案:

答案 0 :(得分: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";

答案 1 :(得分:1)

当你写下这一行时:

Items[] array = new Items[2];

您初始化了一个包含2个元素的Items类型的数组,换句话说,您只是初始化了容器。

数组中的每个元素都是一个对象,还需要初始化,在处理array[0].name时,您尝试访问当前null的内部元素 如果你检查Jigar Joshi answer,你会看到他也初始化数组中的每个Items元素。

希望这有帮助!

答案 2 :(得分:0)

Items[] array = new Items[2]; // Creates an array of Items with null values

因此必须使用

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

或需要初始化数组,如

array[0] = new Items();