所以基本上我有一个
public class Tournament {
private int [] par; // stores par for each hole in the golf course.
private ArrayList<Player> players; // stores the list of players.
public static final int NUMHOLES = 18; // constant.
和
public ArrayList<Player> getPlayers() {
return players;
}
但现在我想在球员数组列表中输入姓名和让分盘。
public void enter(String aName, int aHandicap) {
}
如何创建 enter() 方法?
我试过了
//players.add(aName); players.add(aHandicap);
//players.addAll(aName, aHandicap));
没有骰子。任何帮助表示赞赏
最佳答案
您的抽象错误。他的名字和差点是该球员的属性(property)。它不是列表的属性!
因此,您将字段添加到您的 Player 类,然后直接在构造函数中初始化它们,或者您提供 setter 方法。从概念上讲,name 可能应该通过构造函数传入 - 因为 name 应该是不可变的,并且在创建 Player 后不会更改。鉴于障碍可能会改变;所以setter方法会是更好的选择!
然后,您可以迭代 Player 对象列表,并在 Player 对象(而不是列表)上调用这些 setter 方法。
换句话说:您的类/对象是现实的模型。所以你的玩家类别应该代表“人类玩家”的那些方面,这些方面在你的模型的更大背景下是有意义的。
即使您认为您的 Player 类不应该知道这些事情,您仍然创建了一个抽象,例如:
public class EnhancedPlayer { // could extend Player
that has those other fields
你看,你的问题会变成:让属于在一起的几条信息......通过将它们放在不同的列表中左右; “共同”索引意味着:东西属于一起。
最后,直接回答:你不能那样做;你不应该那样做。当你有一个 List<Player>
,那么您只能将播放器对象添加到该列表!
关于java - 如何将不同类型的值添加到 arraylist<object> 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40341628/