相关疑难解决方法(0)

Collections.unmodifiableSet()和Guava的ImmutableSet有什么区别?

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)

谁能解释一下呢?

java immutability guava

42
推荐指数
3
解决办法
3万
查看次数

标签 统计

guava ×1

immutability ×1

java ×1