我正在编写一个代码来整理一个慈善橄榄球队,我要编写一个名为addPlayer()的方法,该方法需要两个字符串争论,玩家姓名,如果是名人或专业人士,还有一个性别的char参数。该方法不返回任何值。此方法创建一个具有给定名称,分类和性别的Player的新实例,并将其添加到名人或教授的适当球员集合中。
我有一个populatePlayerLists()方法
public void populatePlayerLists()
{
this.addPlayer("Robbie Williams","Celebrity",'M');
this.addPlayer("Robbie Fowler","Professional",'M');
}
我的实例变量如下
private List < Player > professionalsList;
private List< Player > celebritiesList;
我的addPlayer()方法如下
public void addPlayer(String name, String classification,char gender)
{
{
this.professionalsList.add(new Player(name, classification, gender));
this.celebritiesList.add(new Player(name, classification, gender));
}
}
玩家和名人添加到列表中,但是当我希望名人转到一个列表并且专业人员转到其他帮助时,他们会添加到两个列表中。
答案 0 :(得分:5)
您可以使用此String系统并使用equals()
检查字符串的值。
Player player = new Player(name, classification, gender);
if (classification.equals("Celebrity")) {
this.celebritiesList.add(player);
} else if (classification.equals("Professional"))
this.professionalsList.add(player);
}
或者您可以将系统更改为使用枚举(方式,方式更好):
public enum Classification{
Professional,
Celebrity;
}
public enum Gender{
Male,
Female;
}
public void addPlayer(String name, Classification classification, Gender gender){
Player player = new Player(name, classification, gender);
if (classification == Classification.Celebrity) {
this.celebritiesList.add(player);
} else if (classification == Classification.Professional){
this.professionalsList.add(player);
}
}
//...
this.addPlayer("Robbie Williams", Classification.Celebrity, Gender.Male);
this.addPlayer("Robbie Fowler", Classification.Professional, Gender.Male);
您甚至可以使用switch
(但我不会使用它):
Player player = new Player(name, classification, gender);
switch(classification){
case Celebrity :
this.celebritiesList.add(player);
break;
case Professional :
this.professionalsList.add(player);
break;
default :
System.out.println("FileNotFound");
}
答案 1 :(得分:1)
简单if语句会这样做:
public void addPlayer(String name, String classification,char gender)
{
if (classification.equals("Professional"))
this.professionalsList.add(new Player(name, classification, gender));
else
this.celebritiesList.add(new Player(name, classification, gender));
}
或
public void addPlayer(String name, String classification,char gender)
{
if (classification.equals("Professional"))
this.professionalsList.add(new Player(name, classification, gender));
else if (classification.equals("Celebrity"))
this.celebritiesList.add(new Player(name, classification, gender));
else
throw new RuntimeException("unknown classification: " + classification);
}
答案 2 :(得分:1)
看起来你错过了选择添加哪个列表的逻辑?像
这样的东西if (classification.equals("Celebrity")) {
this.celebritiesList.add(new Player(name, classification, gender));
} else {
this.professionalsList.add(new Player(name, classification, gender));
}