我正在尝试向不可修改的 Map 添加条目,JVM 在将条目添加到原始 Map 的子视图时捕获 UnsupportedOperationException,但 JVM 不关心直接添加到原始视图,代码说明:
ConcurrentMap<String, Integer> origView= new ConcurrentHashMap<String, Integer>();
Map<String,Integer> subView = Collections.unmodifiableMap(origView);
origView.put("s", 44); // ok
subView.put("p", 77); // java.lang.UnsupportedOperationException
但是 Collections.unmodifiableSortedMap() 的文档说:
尝试修改返回的排序地图,无论是直接的、通过它的集合视图,还是通过它的 subMap、headMap 或 tailMap 视图,都会导致 UnsupportedOperationException。
请伸出援手,谢谢。