我有全局数组。当我想在某些方法中保存某些内容之后,从该数组中显示它有错误NullPointerException。数组是对象类型。代码就像这样
class Something {
public CoordinatesObject[] coordinates;
Something() {
coordinates = new CoordinatesObject[4];
}
public String myMethod() {
if (coordinates.length==0){
coordinates[0] = new CoordinatesObject(0,0);
}
}
return Integer.toString(coordinates[0].getX());
}
怎么了?
抱歉,我已更新了代码。我在构造函数
中创建了一个新数组答案 0 :(得分:1)
您使用以下行创建了一个数组:
coordinates = new CoordinatesObject[4];
然后你试图像这样创建CoordinatesObject:
if (coordinates.length==0){
coordinates[0] = new CoordinatesObject(0,0);
}
但coordinates.length将等于4,这意味着将不会创建CoordinatesObject类的对象。
答案 1 :(得分:0)
你需要为数组实际分配空间,现在你只需要引用任何内容。
另请注意,数组是固定长度的,您可能需要考虑使用集合(如列表),具体取决于您的需求。
答案 2 :(得分:0)
您还必须使用new创建数组。
答案 3 :(得分:0)
目前,您有一个NULL引用。正如前面的海报所指出的那样,您需要为数组定义并创建一些空间。