(问题的答案在底部)
创建不可修改的列表时,其目的是不应 由您以外的其他人 (即API的客户端)对其进行修改。
该方法将
unmodifiableList(..)创建一个新类型的对象
UnmodifiableList(但这不是公共类),该对象将获取原始列表,并将所有方法委托给它,
除了 会对其进行修改的方法。
如文档中所述,重点是:
返回指定列表的不可修改视图。此方法允许模块为用户提供对内部列表的“只读”访问权限。
因此,举一个例子:您有一个
ListAPI已检测到并且可以运行的设备,并且想要为它们提供API的客户端。但是他不应该 改变 他们。因此,您有两种选择:
- 给他一份您的深拷贝
List
,以便即使他修改了它,也不会改变 您的 列表 - 给他一个无法修改的收藏集-他无法对其进行修改,因此您无需创建新收藏集。
现在是您问题标题的答案-不可修改的列表是原始集合的 视图 。因此,如果您需要向其中添加新项目-例如,您发现了刚刚插入的新设备,则客户将能够在其
不可修改的视图中 看到它。



