【问题标题】:NullPointerException in my array [duplicate]我的数组中的 NullPointerException [重复]
【发布时间】:2016-10-08 22:34:09
【问题描述】:

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

【问题讨论】:

  • NullPointerException 不是运行时问题,不是编译问题 :)

标签: java arrays nullpointerexception java.util.scanner


【解决方案1】:

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

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++ 的程序员。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2018-03-05
    • 1970-01-01
    相关资源
    最近更新 更多