java - 我的数组中出现 NullPointerException

标签 java arrays nullpointerexception java.util.scanner

编译器问题:“mass[i].mainN = scan.nextInt();”行中出现 NullPointerException。在我看来,我已经初始化了所有变量“mainN”和数组“mass”。异常的原因可能是什么?

import java.util.Scanner;

public class Robotics{

public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    int N = scan.nextInt();
    Robo[] mass = new Robo[N];
    for(int i = 0; i < mass.length; i++) {
        mass[i].mainN = scan.nextInt();
        mass[i].auxiliary = scan.nextInt();
    }
    scan.close();
}

class Robo{
    int mainN;
    int auxiliary;
}

最佳答案

初始化数组是不够的,您还必须初始化每个单独的元素:

Robo[] mass = new Robo[N];
for(int i = 0; i < mass.length; i++) {
    mass[i]= new Robo(); // Add this line
    mass[i].mainN = scan.nextInt();
    mass[i].auxiliary = scan.nextInt();
}

Java 分配了一个空元素数组。这并不是特别直观,特别是对于以前接触过 C++ 的程序员来说。

关于java - 我的数组中出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39938057/

相关文章:

php - foreach数组作为键=>值..在每一列名称中插入一个值作为数组键,所有这些都在一行中

java - 什么是 NullPointerException,我该如何解决?

java - 使用 spring-batch 时 fork JVM

Java 8 Lambda 变量作用域

c - 如何在trie中将所有 child 设置为NULL

arrays - Bash:在 FOR 循环中跳出 IF 循环

java - 迭代器中的 NullPointerException

java - 通过 JButton 从 JTextField 获取字符串

java - 如何仅获取联系电话号码

java - 字符数组和for循环错误