我有一个要转换为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个元素。