1

ユーザーからの入力を保持し、それをArraySortedListに格納するオブジェクトを作成するプログラムを作成しています。要件の1つは、特定のオブジェクトがすでにリストに含まれているかどうかを確認することです。私が抱えている問題は、2番目の情報セットを入力するたびにエラーが発生することです。

    //Global variables at the top
    ListInterface <Golfer> golfers = new ArraySortedList < Golfer > (20);
    Golfer golfer;

    //Function Variables
    Scanner add = new Scanner(System.in);
    Golfer tempGolfer;
    String name = ".";
    int score;

    while(!name.equals("")) //Continues until you hit enter
    {
        System.out.print("\nGolfer's name (press Enter to end): ");
        name = add.next();
        System.out.print("Golfer's score (press Enter to end): ");
        score = add.nextInt();
        tempGolfer = new Golfer(name,score);

        if(this.golfers.contains(tempGolfer))
            System.out.println("The list already contains this golfer");
        else
        {
            this.golfers.add(this.golfer);
            System.out.println("\nYou added \'Golfer(" + name + "," + score + ")\' to the list!");
        }
    }

エラーメッセージ:

Exception in thread "main" java.lang.NullPointerException
at ArrayUnsortedList.find(ArrayUnsortedList.java:67)
at ArrayUnsortedList.contains(ArrayUnsortedList.java:110)
at GolfApp.addGolfer(GolfApp.java:90)
at GolfApp.mainMenu(GolfApp.java:52)
at GolfApp.main(GolfApp.java:24)

変数の参照方法に関係していることはほぼ間違いありませんが、どうすれば修正できるかわかりません。変数の参照に多くの問題があります。

4

1 に答える 1

3

ゴルファー変数は初期化されていません。で試してみてください:

this.golfers.add(tempGolfer);

よろしく。

于 2012-09-20T20:14:38.423 に答える