我不明白为什么我的数组没有在我的构造函数中实例化。
以下是我的代码示例:
public class sandBox {
int array[];
int x;
public void sandBox() {
array = new int[5];
x = 0;
}
public static void main(String[] args) {
sandBox test = new sandBox();
int arrayTest[];
arrayTest = new int[10];
System.out.println(arrayTest.length);
System.out.print(test.x);
System.out.print(test.array.length);
}
}
这是我的运行时间给我的:
---- jGRASP exec:java sandBox
10
0
线程“main”java.lang.NullPointerException中的异常
在sandBox.main(sandBox.java:21)
---- jGRASP wedge2:进程的退出代码为1。
---- jGRASP:操作完成。
当然,arrayTest.length正确打印,表明错误不在我的语法中。
test.x也正确打印,显示我的构造函数sandBox(),也“工作”,它实例化了x(一个int)。
但是一旦我们需要打印test.array.length,我就会得到空指针错误。为什么?数组是否以5的长度实例化?
从你的“构造函数”中删除void
:)
喝!
正如Jorn Vernee指出的那样,我的构造函数不再是构造函数,因为我添加了一个空白!通过消除虚空,所有问题都解决了!