class AAA{
class Iner{
int a;
Iner(){}
}
static Iner[] iner = new Iner[20];
public static void main(String[] args){
iner[0].a = 1;
}
}
以上程序会报NullPointerException
原因
在java非基本数据类型初始化的时候,必须使用new。在new之后,数组还是引用数据类型。此时,必须还要再次new,创建对象,并将对象赋值给数组使用。此时才初始化结束。
class AAA{
class Iner{
int a;
Iner(){}
}
static Iner[] iner = new Iner[20];
public static void main(String[] args){
for(;i<20;){
`iner[i] = new Iner();`
}
iner[0].a = 1;
}
}