该类java.util.Collections
允许我使集合实例不可修改。下面的方法
protected Map<String, List<String>> getCacheData() {
return Collections.unmodifiableMap(tableColumnCache);
}
返回一个 umodifiable Map
,因此 anUnsupportedOperationException
是由尝试更改地图实例引起的。
@Test(expected = UnsupportedOperationException.class)
public void checkGetCacheData_Unmodifiable() {
Map<String, List<String>> cacheData = cache.getCacheData();
cacheData.remove("SomeItem");
}
不幸的是,所有List<String>
孩子都不是不可修改的。所以我想知道是否有办法对子值强制执行不可移动的行为List<String>
?
当然,或者我可以遍历映射键值对,使列表不可修改并重新组合映射。