gpt4 book ai didi

Java:HashSet 复制最后一个值

转载 作者:行者123 更新时间:2023-12-01 23:25:52 25 4
gpt4 key购买 nike

出于某种原因,我放入 HashSet 的所有条目都会重复最后一个条目(即使它们不同)。我不知道为什么会这样,并尝试了很多方法来解决它。

这是我将条目放入哈希集中的代码:

public Arena(String name) {
Arena.data = new ArrayList<PlayerData>();
Arena.name = name;
Arena.players = Integer.valueOf(Main.getPlugin().getConfig().getString("MaxUsers"));
Arena.MinPlayers = Integer.valueOf(Main.getPlugin().getConfig().getString("MinUsers"));
ConfigurationSection spawn = Main.getPlugin().getConfig().getConfigurationSection("Arenas."+name+".spawn");
spawnPoint = LocationUtil.locationFromConfig(spawn, true);
state = ArenaState.WAITING;
Arena.playerManager = new PlayerManager(this);
arenas.add(this);
}

这是实际获取要放入哈希集中的所有条目的代码。

public static void loadArenas() {       
FileConfiguration fc = Main.getPlugin().getConfig();
for(String keys : fc.getConfigurationSection("Arenas").getKeys(false)){
Arena arena = new Arena(keys);
}
for(Player player : Bukkit.getOnlinePlayers()){
for(Arena arena : Arena.arenas) player.sendMessage(Bukkit.getServer().getPluginManager().getPlugin("PresidentAssassination").getConfig().getString("Prefix").replaceAll("(&([a-f0-9]))", "\u00A7$2") + ChatColor.RESET + " " + arena.getName());
}
}

任何帮助将不胜感激。抱歉,代码很乱,我只有十二岁:P

最佳答案

鉴于此代码:

Arena.name = name;

...看起来您的 name 变量是静态的。 (对于其他一些变量也是如此。)

这意味着,您拥有一个与类型本身关联的单个变量,而不是每个Arena实例都有单独的名称。您几乎肯定需要实例变量而不是静态变量,因此您可以使用:

this.name = name;

(etc) 在你的构造函数中。请参阅Variables page in the Java Tutorial了解更多信息。

关于Java:HashSet 复制最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20021578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com