这是我的方法:
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];
}
的println:
System.out.println(array[i]);
当我在main方法中使用println时,我得到一个NullPointerException。诚实地试图在概念上理解为什么这不起作用,无济于事。
答案 0 :(得分:3)
您正在尝试返回整数,而不是整个数组。整数甚至不是有效的,因为您试图在数组中的最后一个整数之后返回整数。
我猜你想要将整个数组返回到main方法,如果需要,你需要更改方法签名以返回一个数组,并更改return语句,如下所示:
public int[] randomIntegers() {
//code....
return array;
}
另一方面,您并不总是用生成的整数填充数组。当产生的随机数<1时,时隙将是。 100(大约每十分之一),不被填充,因此在int的槽中具有值0。
答案 1 :(得分:0)
如果您问题中的代码真实反映了您实际运行的代码,那么
的唯一合理解释 System.out.println(array[i]);
投掷NPE是:
randomIntegers()
(尚未)。array
是array
方法所指定的randomIntegers
的不同变量。如果没有解释,请使用整个计划和堆栈跟踪更新您的问题。