Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在arraylist中添加不同类型的值<;对象>;?_Java - Fatal编程技术网

Java 如何在arraylist中添加不同类型的值<;对象>;?

Java 如何在arraylist中添加不同类型的值<;对象>;?,java,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. 如何创建enter()方法 我试过了

所以基本上我有一个

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.
如何创建enter()方法

我试过了

//players.add(aName); players.add(aHandicap);
//players.addAll(aName, aHandicap)); 

没有骰子。感谢您的帮助

您正在尝试向玩家列表中添加字符串和数字


您需要先创建一个播放器,然后将该播放器添加到列表中。它不会自动为你创建一个玩家,仅仅因为你把构建一个玩家所需的碎片交给它

您正在尝试向玩家列表中添加字符串和数字


您需要先创建一个播放器,然后将该播放器添加到列表中。它不会自动为你创建一个玩家,仅仅因为你把构建一个玩家所需的碎片交给它

你的抽象概念是错误的。他的名字和残疾是该球员的财产。它不是列表的属性

因此,将字段添加到Player类中,然后直接在构造函数中初始化它们,或者提供setter方法。从概念上讲,名称可能应该通过构造函数输入-因为名称应该是不可变的,并且在创建播放器后不会更改。而障碍可能会改变;因此,有一个setter方法将是更好的选择

然后,您可以迭代您的Player对象列表,并在Player对象(而不是列表)上调用这些setter方法

换句话说:你的类/对象是现实的模型。因此,您的玩家类应该代表“人类玩家”的那些方面,这些方面在您的模型的更大上下文中是有意义的

即使您认为您的玩家类不应该知道这些事情,您仍然创建了一个抽象,比如:

public class EnhancedPlayer { // could extend Player
  that has those other fields
你看,你的问题会变成:让我们表示几个属于一起的信息。。。把他们放在不同的名单上;一个“共同”的索引意味着:东西属于一起


最后,直截了当的回答是:你不能那样做;你不应该那样做。当你有一个
列表时,你只能将玩家对象添加到该列表中

你的抽象概念是错误的。他的名字和残疾是该球员的财产。它不是列表的属性

因此,将字段添加到Player类中,然后直接在构造函数中初始化它们,或者提供setter方法。从概念上讲,名称可能应该通过构造函数输入-因为名称应该是不可变的,并且在创建播放器后不会更改。而障碍可能会改变;因此,有一个setter方法将是更好的选择

然后,您可以迭代您的Player对象列表,并在Player对象(而不是列表)上调用这些setter方法

换句话说:你的类/对象是现实的模型。因此,您的玩家类应该代表“人类玩家”的那些方面,这些方面在您的模型的更大上下文中是有意义的

即使您认为您的玩家类不应该知道这些事情,您仍然创建了一个抽象,比如:

public class EnhancedPlayer { // could extend Player
  that has those other fields
你看,你的问题会变成:让我们表示几个属于一起的信息。。。把他们放在不同的名单上;一个“共同”的索引意味着:东西属于一起


最后,直截了当的回答是:你不能那样做;你不应该那样做。当你有一个
列表时,你只能将玩家对象添加到该列表中

一个
玩家的
姓名
障碍
是其身份的一部分,因此它们应该是该类
玩家的两个字段
,因此:

假设您的类
Player
看起来像:

public class Player {
    private String name;
    private int handicap;

    public Player(final String name, final int handicap) {
        this.name = name;
        this.handicap = handicap;
    }

    // Getters (and setters if needed)
}
那么您的方法
enter
将是:

public void enter(String aName, int aHandicap) {
    players.add(new Player(aName, aName));
}

玩家的
姓名
障碍
是其身份的一部分,因此它们应该是类
玩家
的两个字段,因此:

假设您的类
Player
看起来像:

public class Player {
    private String name;
    private int handicap;

    public Player(final String name, final int handicap) {
        this.name = name;
        this.handicap = handicap;
    }

    // Getters (and setters if needed)
}
那么您的方法
enter
将是:

public void enter(String aName, int aHandicap) {
    players.add(new Player(aName, aName));
}

也许您正在寻找
玩家。添加(新玩家(aName,aHandicap))
@Eran I was,thanks@Paul我已经得到了我的答案,但我还是会读的,thanks@RobBor请注意:我想你不会再看到太多的更新了。请考虑接受对你最有帮助的答案。也许你正在寻找<代码>玩家。添加(新玩家(AnEnter,Apple Apple))< /代码>thanks@Paul我已经得到了我的答案,但我还是会读的,thanks@RobBor请注意:我想你不会再看到太多的更新了。请考虑接受对你最有帮助的答案。如果我能吻你,我会的。谢谢!如果我能吻你,我会的。谢谢!