我有一个名为Runner的类,如下所示:
public class Runner
{
private static int nextNumber= 1;
private int number;
private String name;
private String ageGroup;
private int time;
public Runner()
{
super();
this.name = "";
this.ageGroup = "standard";
this.time = 0;
this.number = nextNumber++;
}
它还包括标准的getter和setter方法。 在另一个类中,我试图编写一个方法,从文本文件中读取数据并将数据分配给列表。我的方法目前看起来像这样:
public void readInRunners()
{
String pathname = OUFileChooser.getFilename();
File aFile = new File(pathname);
Scanner bufferedScanner = null;
List<Runner> runners = new ArrayList<>();
try
{
String name;
int age;
String ageGroup;
Scanner lineScanner;
String currentLine;
bufferedScanner = new Scanner(new BufferedReader(new FileReader(aFile)));
while (bufferedScanner.hasNextLine())
{
currentLine = bufferedScanner.nextLine();
lineScanner = new Scanner(currentLine);
lineScanner.useDelimiter(",");
name = lineScanner.next();
age = lineScanner.nextInt();
if(age < 18)
{
ageGroup = ("junior");
}
else if(age >= 55)
{
ageGroup = ("senior");
}
else if(age >= 18 && age < 55)
{
ageGroup = ("standard");
}
runners.add(new Runner(name, ageGroup));
}
}
catch (Exception anException)
{
System.out.println("Error: " + anException);
}
finally
{
try
{
bufferedScanner.close();
}
catch (Exception anException)
{
System.out.println("Error: " + anException);
}
}
我在这一行收到错误:
runners.add(new Runner(name, ageGroup));
我知道由于不相容的论点而没有编译,但我不确定如何用这句话来表达。
非常感谢任何建议。
答案 0 :(得分:0)
我认为你应该添加一个构造函数
public Runner(String name, String age)
{
this.name = name,
this.age= age;
}
你只有空构造函数
public Runner(){// some code}
答案 1 :(得分:0)
你需要有一个参数化的构造函数,就像在你的跑步者类
中一样public Runner(String name,String ageGroup)
{
this.name = name;
this.ageGroup = ageGroup;
this.time = 0;
this.number = nextNumber++;
}
答案 2 :(得分:0)
只需将这些参数添加到runner类的构造函数中:
public Runner(String name, String ageGroup)
{
super();
this.name = name;
this.ageGroup = ageGroup;
this.time = 0;
this.number = nextNumber++;
}