java - java中用户输入后出现NullPointerException

标签 java

我对自己的处境感到很困惑。 我真的不确定为什么会出现这个空指针异常。

//这是我的一个类(class)的方法

public class UI {

    Registry reg;

    public UI (Registry reg) {
        this.reg = reg;
        menu();
    }

    private void addAppts(Scanner sc) {
        System.out.println("Enter the month for appointment in mm/dd/yyyy format:");
        sc.nextLine();
        int month = sc.nextInt();
        System.out.println("Enter the day for appointment mm/dd/yyyy format:");
        sc.nextLine();
        int day = sc.nextInt();
        System.out.println("Enter the year for appointment mm/dd/yyyy format:");
        sc.nextLine();
        int year = sc.nextInt();
        System.out.println("Enter the hour for appointment:");
        sc.nextLine();
        int hour = sc.nextInt();
        System.out.println("Enter the minute for appointment:");
        sc.nextLine();
        int minute = sc.nextInt();
        System.out.println("Enter the owner name for appointment:");
        sc.nextLine();
        String ownerName = sc.nextLine();
        reg.addAppts(month, day, year, hour, minute, ownerName);
    }
}

//这是我其他类(class)的另一个方法

public class Registry {

    private Appointments[] appts;

    public void addAppts(int month, int day, int year, int hour, int minute, String ownerName) {
        if (next < appts.length) {
            Appointments e = new Appointments(month, day, year, hour, minute, ownerName);
            appts[next++] = e;
        }
    }
}

public class Appointments {

    private int month, day, year, hour, minute;
    private String ownerName;

    public Appointments(int month, int day, int year, int hour, int minute, String ownerName) {
        this.month = month;
        this.day = day;
        this.year = year;
        this.hour = hour;
        this.minute = minute;
        this.ownerName = ownerName;
    }
}

我在第一个方法的最后一行收到空指针异常错误。 有什么建议吗?

最佳答案

reg 很可能是 null

如果空值在概念上是允许的,则考虑在该方法周围使用 if (reg != null){。如果该方法执行时它不应该为 null,则确保在构造对象时对其进行初始化。

关于java - java中用户输入后出现NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22400746/

相关文章:

java - 调用重绘时 JTable 不重绘

java - 从下一个闹钟获取日期

java - Java中高效的数组扩展

java - Android:如何显示带有回调的相机预览?

java - 使用 Java 填充 HTML 文件中的占位符

java - 在 spring boot fat jar 中包含的多个作业中运行特定的 spring batch 作业

java - 为什么new String() + new String() 在JDK8下返回不同的结果

java - 在java eclipse中读取文本文件作为二维数组错误

java - 服务器发送事件 Spring Webflux 返回事件名称以响应其余 Controller

java - 网络服务失败。 java.net.SocketTimeoutException : Read timed out - Using Jboss 7. 1