java - (Java初学者)为什么我的数组为空?

标签 java arrays null

这是我的方法:

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/

相关文章:

java - 在运行时为 JTable 的特定行设置背景颜色

java - 如何将 Java API 文档添加到 Eclipse?

arrays - reshape 广播表达

java - 如何在java中比较字符串数组列表值和数组字符串值

c - 如何知道 C 中的 char 数组是否有空元素?

ios - 如果变量为空,如何形成 if 语句来重复方法?

Java:将直接 ByteBuffer 转换为 double[]

java - 在 Opentelemetry 中,无法获取父跨度

c# - 从 C# 调用时将记录选项返回为 null

c - 检查任何值是否为 NULL 或空的最佳方法是什么?