这是我的方法:
public int randomIntegers() {
array = new int[20];
Random r = new Random();
for(i =0; i<20; i++) {
int intRandom = r.nextInt(1000);
if (intRandom >= 100) {
array[i] = intRandom;
}
}
return array[i];
}
打印:
System.out.println(array[i]);
当我在 main 方法中使用 println 时,我得到一个 NullPointerException。诚实地尝试从概念上理解为什么这不起作用,但无济于事。
最佳答案
您正在尝试返回一个整数,而不是整个数组。该整数甚至无效,因为您试图返回数组中最后一个整数之后的整数。
我猜您想将整个数组返回到主方法,如果是这样,您需要更改方法签名以返回数组,并更改 return 语句,如下所示:
public int[] randomIntegers() {
//code....
return array;
}
另一方面,您并不总是用生成的整数填充数组。当生成的随机数 < 100(大约每十次)时,槽将不会被填充,因此 int 槽中的值为 0。
关于java - (Java初学者)为什么我的数组为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26189257/