Java 数组中的NullPointerException

Java 数组中的NullPointerException,java,arrays,nullpointerexception,java.util.scanner,Java,Arrays,Nullpointerexception,Java.util.scanner,编译器问题:行“mass[i].main=scan.nextInt();”中的NullPointerException。在我看来,我已经将所有变量“main”和数组“mass”进行了日化。异常的原因可能是什么 import java.util.Scanner; public class Robotics{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N

编译器问题:行“mass[i].main=scan.nextInt();”中的NullPointerException。在我看来,我已经将所有变量“main”和数组“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;
}
import java.util.Scanner;
公共级机器人技术{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
int N=scan.nextInt();
机器人[]质量=新机器人[N];
对于(int i=0;i
初始化数组是不够的,还必须初始化每个元素:

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();
}
Robo[]质量=新机器人[N];
对于(int i=0;i

java分配了一个空元素数组。这对直觉来说不是特别直观,尤其是对C++之前的程序员。

null PoExExtExchange不是运行时问题,不是编译问题: