1

私は2つのJavaクラスを持っています。Schedule は、 と呼ばれるジョブの配列を使用するメイン クラスですdeadline。配列に何かを入れるのに問題があります。テキストファイルからデータを読み取り (正常に動作します)、特定のデータを に挿入する for ループがありますdeadlinedeadline配列への挿入を開始するたびに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;
    }

}
4

1 に答える 1

9

コンストラクターでシャドーイングdeadlineしているため、クラス memberdeadlineを初期化せず、ローカルメンバーを初期化します。次のように変更します。

    private Job []deadline;
    Schedule (int n){
        deadline = new Job[n];
    // ^^ note - no Job[] here
    }
于 2012-05-04T23:23:49.167 に答える