java - 如何将不同类型的值添加到 arraylist<object> 中?

标签 java

所以基本上我有一个

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/

相关文章:

java - 获取适用于 Android 和 PC 的 Preferences API

Javafx 组合框重置问题

java - 如何配置 Jenkins 使用 Maven 进行构建?

java - 如何在 Spring 中使用 MongoRepository 在 mongodb 中 findOneAndDelete

java - 属性 "Any"已定义。使用 <jaxb :property> to resolve this conflict

java - 在泛型类中创建泛型方法名称?

java - 如何更改通知的内容而不重新创建它?

java - 无法找到或加载主类 - 我无法运行从 Ant 创建的 .jar 文件

java - 从生成的源创建 XML

java - Android 上的 TCP/IP