2011-11-09 56 views
0

期间问题如果我宣布ArrayList的喜欢这 -安卓:ArrayList的声明

private ArrayList<Integer[]> nodeList; 

然后,同时加入阵列进去,得到的NullPointerException

但是,如果我改变它TO-

private ArrayList<Integer[]> nodeList= new ArrayList<Integer[]>(); 

- 它工作正常。

为什么第一个失败!

+1

正如你所说,在第一种情况下,你只声明它,但它的初始值为null。 – harism

+1

@Avisek http://stackoverflow.com/questions/8065763/error-while-assigning-value-to-member-variable-after-declaring-the-object-null :)没有冒犯,但你应该读一些关于编程的书籍在java – Selvin

+0

你是一个noob&am澄清,而尝试练习。实际上,从PHP切换到JAVA非常混乱 –

回答

3

第一个只声明变量,但不创建实际的对象。只有当你使用new时,你实际上创建了这个对象。

在与C++不同的java中,声明变量不会分配它的local variable。要实际创建对象,您需要明确地创建它[在您的示例中:使用关键字new]。
(*)请注意,这仅适用于reference类型对象,并且java primitives是使用声明创建的。