2012-04-07 55 views
1

我有全局数组。当我想在某些方法中保存某些内容并在那之后显示它时,它有NullPointerException异常。数组是对象类型。代码是这样的Android无法保存到阵列

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

您需要为数组实际分配空间,现在您只需要引用一个空格。

另请注意,数组是固定长度的,您可能要考虑使用集合(如列表),而不是根据您的需要。

+0

我已经更新了代码I inicialize构造函数 – 2012-04-07 17:09:13

+0

@ user1106177中的数组并且? – 2012-04-07 17:13:29

0

您必须使用new创建Array。

0

当前,您有一个NULL引用。正如前面的海报所指出的那样,您需要为阵列定义并创建一些空间。

+0

我已经更新了代码我inicialize在构造函数中的数组... – 2012-04-07 17:08:53

+0

Upfoting Rafal Roszak的答案,因为它很清楚,并解释了您的问题。 – Shion 2012-04-07 21:44:15

1

您创建了此行的数组:

coordinates = new CoordinatesObject[4]; 

,然后你要像创建CoordinatesObject:

if (coordinates.length==0){ 
    coordinates[0] = new CoordinatesObject(0,0); 
} 

但coordinates.length将是等于4,意味着不会创建CoordinatesObject类的对象。