问题1:类A,i是A中的公共属性,int类型。类中有构造函数A();
在编写:
A[] a = new A[2];
a[0].i = 10;
a[1].i = 20;
System.out.println(a[0].i);
System.out.println(a[1].i);
时发生NullPointerException异常,请问这是什么异常。
当我把
a[0].i = 10;
a[0].i = 20;
改为a[0] = new A(10);
a[1] = new A(20);时代码又能正常编译运行。 此代码其他地方均无错误。
在编写:
A[] a = new A[2];
a[0].i = 10;
a[1].i = 20;
System.out.println(a[0].i);
System.out.println(a[1].i);
时发生NullPointerException异常,请问这是什么异常。
当我把
a[0].i = 10;
a[0].i = 20;
改为a[0] = new A(10);
a[1] = new A(20);时代码又能正常编译运行。 此代码其他地方均无错误。
A[] a = new A[2]; 这个new出来了 一个A的数组.但是这个数组没有初始化..所以..你不能直接调用a[0].i.. 本身a[0]都是空的. 你调a[0].i 肯定是不可以的.当你换成下面的的时候..一目了然..a[0] = new A(10);你是在为 a[0]做初始化.. 上下两个代码的区别就在这里.
不过,你说的Exception 是你 你要打的(或者,你做的命令)内容为空
也就是说你你数组 大小被设定为10 ,而之后你有试着打印了吧 (没有代码,猜测打印)。还有,你其他的地方,也许编译没有错误,逻辑不知道是不是有错误。 逻辑错误也能造成你的 这个 Exception的。下次,发代码吧,也许我菜。。 帮不了太多。。
,还是等高手猜你的代码吧