JavaDoc ImmutableSet说:
与
Collections.unmodifiableSet可以更改的单独集合的视图不同,此类的实例包含其自己的私有数据,并且永远不会更改.这个类对于公共静态最终集("常量集")很方便,也可以让你轻松地为调用者提供给你的类的集合制作一个"防御性副本".
但ImmutableSet仍然存储元素的参考,我无法弄清楚差异Collections.unmodifiableSet().样品:
StringBuffer s=new StringBuffer("a");
ImmutableSet<StringBuffer> set= ImmutableSet.of(s);
s.append("b");//s is "ab", s is still changed here!
Run Code Online (Sandbox Code Playgroud)
谁能解释一下呢?