我正在尝试更新阵列列表并遇到我似乎无法动摇的错误(此处已经回顾了一些类似的问题)。
主类
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));
最后一行是标记错误
玩家类
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,并让数组中的不同对象本身就是变量,但似乎无法解决。
答案 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;,变量,变量);