编译器问题:“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/