Java中操作Map集合时:使用Map.of()添加数据报错 java.lang.UnsupportedOperationException 解决办法以及注意事项
解释:
java.lang.UnsupportedOperationException
异常通常发生在尝试修改一个不支持修改操作的集合时。在Java中,Map.of()
方法用于创建一个不可变的Map集合。这意味着,使用该方法创建的Map集合不支持添加或删除元素。尝试向这样的集合中添加数据会导致抛出UnsupportedOperationException
。
解决方法:
- 如果你需要一个可以修改的Map,请不要使用
Map.of()
,而是使用其他方式创建Map,例如使用new HashMap<>()
或者Map.ofEntries()
。 - 如果你确实需要添加数据到
Map.of()
返回的不可变Map中,你可以将其结果赋值给一个可变的Map类型,然后向其添加数据。例如:
Map<KeyType, ValueType> map = new HashMap<>(Map.of(key1, value1, key2, value2));
map.put(key3, value3); // 现在可以添加数据了
- 另一种方式是使用
Map.of()
或Map.ofEntries()
结合其他集合操作,如Streams或者Collections的singletonMap()
等方法,来创建包含额外元素的新Map。
确保在代码中使用适当的集合类型来满足你的需求。如果你需要一个可变的集合,请使用可变的集合实现。如果你需要一个不可变的集合,请接受它们是只读的,并且不要尝试对它们进行修改操作。
评论已关闭