如果我写
List<Integer> a1 = Arrays.asList(1, 2, 3);
List<Integer> a2 = Collections.unmodifiableList(a1);
a2
是只读的,但如果我写入
a1.set(0,10);
如果修改原始集合,那么目标复制集合也会被修改。
如果API中说:
返回指定集合的不可修改视图。此方法允许模块向用户提供对内部集合的“只读”访问权限。
那么,为什么我修改原始集合后,目标复制集合也被修改了呢?
也许我误解了意思,如果是这样,该如何编写该集合的防御性副本呢?