Java和StringTokenizer中对象数组的输入/输出



我有一个问题,但我不太确定它在哪里。我从文本文件中读取数据,NRL团队数据具体。数据以逗号分隔,数据为:俱乐部名称、俱乐部吉祥物、俱乐部别名。这大概有20行。

我需要依赖类,并将类实例化为对象数组。班级社团包含社团名称、社团吉祥物、社团别名。

当我尝试从clubArray数组中从俱乐部对象中打印'alias'字段中的数据到屏幕时,它只打印'west ',数据文件中的最后一个条目。

我已经注释了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");
}

这些是setter, getter和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());
}

您混淆了实例字段(method)静态字段(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 

getter和setter只有在静态属性的情况下才应该是静态的。如果你试图为非静态属性定义静态getter/setter,有些ide会给出警告。

相关内容

  • 没有找到相关文章

最新更新