更新包含多种数据类型的ArrayList

时间:2017-04-23 15:53:56

标签: java arraylist

我正在尝试更新阵列列表并遇到我似乎无法动摇的错误(此处已经回顾了一些类似的问题)。

主类

public static void main(String[] args) {
    ArrayList<Player> PLAYERS = new ArrayList<Player>();
    PLAYERS.add(new Player("char1", 10, "A"));
    PLAYERS.add(new Player("char2", 20, "B"));

然后很晚,作为一个循环(运行没有问题)的结果,我正在尝试使用 -

更新上述条目之一
PLAYERS.set(index, ("char1", variable, variable));

最后一行是标记错误 shown here.

玩家类

public class Player {
public String character;
public int money;
public String reference;

Player(String character, int money, String reference){
    this.character = character;
    this.money = money;
    this.reference = reference;
}

}

我尝试了一些不同的更新方式,包括使用getter / setter,并让数组中的不同对象本身就是变量,但似乎无法解决。

3 个答案:

答案 0 :(得分:2)

PLAYERS.set(index, ("char1", variable, variable));

是无效的Java语法。你很可能意味着

PLAYERS.set(index, new PLAYER("char1", variable, variable));

另外,请遵守标准Java命名约定:PLAYERS应为players

答案 1 :(得分:0)

您的ArrayList 不包含包含多种数据类型。它包含Player的对象,只有Player类型,你似乎试图使事情过于复杂。您只需从ArrayList获取播放器,然后进行修改即可。

Player p = players.get(i);
p.setName("foo");
p.setMoney(50);

答案 2 :(得分:0)

编译器是正确的。它并不知道你的意思(&#34; char1&#34;,变量,变量)。 尝试使用新播放器更新它(&#34; char1&#34;,变量,变量);