我有一个要转换为int的字符串数组,这很简单明了:

public static void main(String[] args) {
    String myarray[]=readfile("[pathtothefile]");

     int mynums[] = new int[myarray.length];
    for (int i=0;i<myarray.length;i++){
        mynums[i]=Integer.parseInt(myarray[i]);
    }
    System.out.print(Arrays.toString(mynums));
}


但是这里的问题是,如果我像这样初始化“ mynums”:mynums [] = null;我在以下行上得到NullPointerException:

"mynums[i]=Integer.parseInt(myarray[i]);"


我要解决的是

int mynums[] = new int[myarray.length];


here有人解释了为什么会发生这种情况,但是我现在不知道如何初始化!我的意思是有时我不知道我的数组能得到多大,我只想初始化它。有可能吗?

最佳答案

在Java中,一切都是幕后的指针。因此,当您执行mynums [] = null时,您指向的是null。那么什么是null [i]?那就是您的NPE的来源。或者,当您将其指向数组时,实际上是在访问数组的第i个元素。

10-01 09:09