【问题标题】:Data Structure in array NullPointerException [duplicate]数组 NullPointerException 中的数据结构 [重复]
【发布时间】:2012-07-17 07:59:11
【问题描述】:

可能重复:
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";
           }
}

请帮我解决这个问题。

【问题讨论】:

标签: java arrays data-structures nullpointerexception


【解决方案1】:

当你写下这行时:

Items[] array = new Items[2];

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

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

希望这会有所帮助!

【讨论】:

    【解决方案2】:
    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();
    

    【讨论】:

      【解决方案3】:
      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";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多