【发布时间】:2018-07-30 01:05:37
【问题描述】:
我对此进行了研究,并尝试通过将我的集合和 for 循环更改为迭代器来修复此异常,但这似乎并没有解决它。我仍然遇到同样的错误。
他是来自eclipse的错误日志:https://imgur.com/a/uqULZsw
这是我在 BountyHunterController 文件中的 removeTarget 函数
public void removeTarget(Player player) {
player.getTemporaryAttributtes().remove(TARGET_IDENTIFIER);
player.getPackets().sendIComponentText(1296, 25, "None");
Iterator<Player> iterator = getPlayers().iterator();
while (iterator.hasNext()) {
Player p = iterator.next();
Optional<Player> targ = minigame.getTarget(p);
if (targ.isPresent()) {
if (targ.get().getUsername().equalsIgnoreCase(player.getUsername())) {
p.getTemporaryAttributtes().remove(TARGET_IDENTIFIER);
p.getPackets().sendIComponentText(1296, 25, "None");
p.sendMessage("<col=FE1212>Your target has left, and you will be assigned another one.");
Controler con = p.getControlerManager().getControler();
if (con != null) {
if (con instanceof BountyHunterController) {
BountyHunterController bh = (BountyHunterController) con;
minigame.map.remove(type, player);
bh.assignTarget();
}
}
}
}
}
minigame.map.remove(type, player);
return;
}
这是第 495 行的错误
玩家 p = iterator.next();
注意:尝试离开,离开只是布尔函数检查条件,所以错误只是我提供的这个函数。
我做错了什么,我该如何解决这个问题?
【问题讨论】:
-
其中一个调用会修改您正在迭代的地图。没有minimal reproducible example,我们很难提供具体的帮助。
标签: java exception error-handling