Android无法保存到阵列

时间:2012-04-07 16:59:00

标签: android arrays

我有全局数组。当我想在某些方法中保存某些内容之后,从该数组中显示它有错误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());
}

怎么了?

抱歉,我已更新了代码。我在构造函数

中创建了一个新数组

4 个答案:

答案 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引用。正如前面的海报所指出的那样,您需要为数组定义并创建一些空间。