我无法理解为什么Java希望隐藏不可变的,不可修改的集合,以防止它们被传递出去。

这使开发人员的工作更加困难,因为您不能保证一个类返回的任何不可变的内容都是不可修改的,从而迫使您将对Collections.unmodifiable的调用分散到整个代码中。这既浪费又烦人。

是否有我为什么要保护这些方法的原因,或者是我缺少另一个包含不可变和/或不可修改集合的公共版本的库?

为了更多地了解Java,假设Scala不能算作“包含不可变集合的公共版本的库”的答案:)

最佳答案

我认为这与框架的设计目标有关:


  主要设计目标是生产一种尺寸更小且更重要的是“概念重量”的API。


Source

如果您愿意了解更多概念上的分量,则应该查看Guava's immutable collection types :)

关于java - 为什么将不可修改的集合保护到“集合”包中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21564605/

10-16 03:48