【问题标题】: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";