今天写程序遇到对象数组,编译时没问题运行时报空指针错误。
经分析发现出错原因是在定义对象数组时,并没有在内存中给对象数组分配空间。
正确的做法应该在定义后,还要给数组中每个元素再创建一次对象。
修改前
A[] a = new A[10];
a[0].setE1();
a[0].setE2();
修改后
A[] a = new A[10];
a[0] = new A();
a[0].setE1();
a[0].setE2();
今天写程序遇到对象数组,编译时没问题运行时报空指针错误。
经分析发现出错原因是在定义对象数组时,并没有在内存中给对象数组分配空间。
正确的做法应该在定义后,还要给数组中每个元素再创建一次对象。
修改前
A[] a = new A[10];
a[0].setE1();
a[0].setE2();
修改后
A[] a = new A[10];
a[0] = new A();
a[0].setE1();
a[0].setE2();