Collections.unmodifiableList(...)
返回静态内部类 UnmodifiableList
的新实例。其他不可修改的集合类以相同的方式构造。
将ozt_rstrong公开,这些类有两个优点:UnmodifiableList
),因此API用户不会想到修改该集合; List
是否为instanceof UnmodifiableList
的能力。
那么,公开这些类(class)是否有而不是的优势?
编辑:没有提出任何令人信服的论据,因此我选择了最受支持的答案。
最佳答案
我认为这两个优点都存在,但没有那么有用。主要问题保持不变:UnmodifiableList仍然是一个List,因此所有的setter都可用,并且基础集合仍然是可修改的。将类UnmodifiableList公开将增加无法修改的幻想。
更好的方法是为编译器提供帮助,但是为此,收集类层次结构必须进行很多更改。例如,Scala的collection API在这方面更高级。
缺点是将至少三个其他类/接口(interface)引入API。由于它们没有那么有用,我认为将它们排除在API外是一个不错的选择。