数组未在构造函数中实例化[关闭]

问题描述 投票:0回答:2

我不明白为什么我的数组没有在我的构造函数中实例化。

以下是我的代码示例:

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的长度实例化?

java nullpointerexception global-variables instantiation
2个回答
0
投票

从你的“构造函数”中删除void :)


0
投票

喝!

正如Jorn Vernee指出的那样,我的构造函数不再是构造函数,因为我添加了一个空白!通过消除虚空,所有问题都解决了!

© www.soinside.com 2019 - 2024. All rights reserved.