我有两个Java类。 Schedule是使用称为deadline的Jobs数组的主要类。我在将任何内容放入数组时遇到问题。我有一个for循环,可从文本文件读取数据(工作正常)并将某些数据插入deadline。我没有成功创建deadline,因为每当我要开始插入数组时都会得到一个NullPointerException。 (...下面的代码显然不是我实际编写的代码,但情况仍然相同。)

自从我用Java编码以来已经有一段时间了,所以我可能只是忽略了一些简单的东西,但是我不太确定它可能是什么。谢谢您的帮助。

public class Schedule {

    private Job []deadline;
    Schedule (int n){
        Job[] deadline = new Job[n];
    }

    ...
        int n = 7;
        Schedule schedule = new Schedule(n);

        deadline[0] = new Job("A",3,40); // This line won't compile. NullPointerException
}


public class Job {

    private String name;
    private int deadline;
    private int profit;

    Job(String n, int d, int p){
        name = n;
        deadline = d;
        profit = p;
    }

}

最佳答案

您在构造函数中隐藏了deadline,因此无需初始化类成员deadline,而是初始化本地成员。更改为:

    private Job []deadline;
    Schedule (int n){
        deadline = new Job[n];
    // ^^ note - no Job[] here
    }

10-04 20:13