0

問題がありますが、どこにあるのかよくわかりません。具体的には、NRLチームのデータであるテキストファイルからデータを読み取っています。データはコンマで区切られ、データは次のとおりです: クラブ名、クラブ マスコット、クラブ エイリアス。これが20行ほどあります。

クラスに依存し、クラスをオブジェクトの配列にインスタンス化する必要があります。クラス Club には、クラブ名、クラブ マスコット、クラブ エイリアスが含まれます。

clubArray 配列の club オブジェクトの「alias」フィールドのデータを画面に出力しようとすると、データ ファイルの最後のエントリである「wests」のみが出力されます。

エラーが発生したため、setTeamName と setClubMascot のビットをコメントアウトしましたが、コードは引き続き機能し、すべてのトークンをエイリアス データ フィールドに入れる必要があります。

誰かが私が間違っていることを指摘できれば幸いです。問題が配列に書き込んで配列から取得することにあるのか、それともその中間にあるのかはわかりません。

public static void loadData(Club[] clubArray) throws FileNotFoundException
{
    int i = 0;
    File myfile = new File("NRLclubs.txt");
    if(myfile.exists())
    {
        Scanner inputFile = new Scanner(myfile);

        // Read until the end of the file.
        while (inputFile.hasNext())
        {
            clubArray[i] = new Club();
            String line = inputFile.nextLine();
            StringTokenizer strToken = new StringTokenizer(line, ",");

            while(strToken.hasMoreTokens())
            {
                /*String teamToken = strToken.nextToken();
                Club.setTeamName(teamToken);

                String mascotToken = strToken.nextToken();
                Club.setClubMascot(mascotToken);
                */

                String aliasToken = strToken.nextToken();
                Club.setClubAlias(aliasToken);
            }
            //System.out.println(Club.getClubAlias());
            i++;
        }
        inputFile.close();

        int k = 0;
        while(k < i)
        {
            Club.displayClubAlias(clubArray[k]);
            k++;
        }

    }
    else
        System.out.println("The file was not found");
}

そして、これらは私のセッター、ゲッター、およびdisplayClubAliasメソッドです:

 public static void setClubAlias(String alias)
{
    clubAlias = alias;
}

public String getClubAlias()
{
    return clubAlias;
}

public static void displayClubAlias(Club c)
{
    System.out.println(c.getClubAlias());
}
4

2 に答える 2

2

instance field(method)static field(method ) を混同しました。

// in class Club
public String clubAlias; // no static
public void setClubAlias(String alias) // no static
{
    clubAlias = alias;
}

// in method loadData
clubArray[i].setClubAlias(aliasToken); // not Club 
于 2013-05-29T06:38:44.097 に答える
1

ゲッターとセッターは、静的プロパティの場合にのみ静的にする必要があります。一部の IDE では、非静的プロパティに対して静的ゲッター/セッターを定義しようとすると警告が表示されます。

于 2013-05-29T07:02:04.397 に答える