代码之家  ›  专栏  ›  技术社区  ›  Pronay Sarker

我可以打印整个数组而不得到“由于“anotherInteger”为null而无法读取字段“值”错误吗?

  •  -1
  • Pronay Sarker  · 技术社区  · 1 年前

    我正在尝试创建一个程序,该程序将使用 rays.sort(array, Collections.reverseOrder()); 方法

    这给了我一个错误。因为数组的某些值为NULL。 错误消息- Exception in thread "main" java.lang.NullPointerException: Cannot read field "value" because "anotherInteger" is null

    示例:如果我把 5 作为的值 number ,则只有该数组的前5个元素将具有值。所以,它向我显示了一个错误。

    这是代码

                int number = sc.nextInt();
                Integer array[]= new Integer[10];
                for(int j=0;j<number;j++){  // here number is the number of inputs,
                        array[j]= sc.nextInt();
                }
                Arrays.sort(array, Collections.reverseOrder()); // to sort our array
                System.out.println(Arrays.toString(array));
    

    现在,有没有什么方法可以在不收到错误消息的情况下打印整个数组?

    1 回复  |  直到 1 年前
        1
  •  0
  •   David Weber    1 年前

    解决方案:

    int numbersAmount = sc.nextInt();
    Integer[] array = new Integer[numbersAmount];
    for(int j = 0; j < array.length; j++){
        array[j] = sc.nextInt();
    }
    Arrays.sort(array, Collections.reverseOrder());
    System.out.println(Arrays.toString(array));
    

    此外:

    思考:

    • 如果在没有任何输入的情况下按ENTER怎么办?
    • 如果按ENTER键输入的是字母,该怎么办?