Loading... 首先上错误代码 ```java public static final Map<String, List<Home>> PLAYER_HOME = new Hashtable<>(); public static boolean addHome(Player player, String homeName) { if (PLAYER_HOME.isEmpty() || !PLAYER_HOME.containsKey(player.getName())) { PLAYER_HOME.put(player.getName(), List.of(new Home(homeName, player.getLocation()))); return true; } for (Home home : PLAYER_HOME.get(player.getName())) { if (homeName.equals(home.getHomeName())) { return false; } } PLAYER_HOME.get(player.getName()).add(new Home(homeName, player.getLocation())); HomeFiles.saveHomeData(); return true; } ``` 第一次调用不会报错,而第二次修改相同键值对时,就会报错 `UnsupportedOperationException` 问题出在 `List.of(new Home(homeName, player.getLocation()))` 上 通过 `List.of` 或 `Arrays.asList` 方法产生的 List 对象,其实是而是`java.util.Arrays` 类中的一个内部类,并不是正常的 `java.util.ArrayList` 类 最后修改:2022 年 10 月 29 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 本作品采用 CC BY-NC-SA 4.0 International License 进行许可。