每当我尝试运行以下代码时,它都会抛出UnsupportedOperationException
但是,根据我的理解,它应该可以正常工作,因为我正在计算其值K已经存在于Map
public class MyClass {
public static void main(String[] args) {
Collections.singletonMap("k", "v").computeIfAbsent("k", k -> "v" );
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我理解这种行为吗?
Collections.singletonMap()不返回完全实现的Map.
public static <K,V> Map<K,V> singletonMap(K key, V value) {
return new SingletonMap<>(key, value);
}
Run Code Online (Sandbox Code Playgroud)
尝试更新映射的操作将抛出异常UnsupportedOperationException(否则,返回的映射不再是不可变的)