如果您有一个不可变的列表,那么您希望它在请求时总是返回对同一对象的引用,例如

list.get(0)

我的问题是,您是否希望能够对对象进行突变,并且下次您从列表中获取该突变时是否能够反射(reflect)出该突变?

最佳答案

这取决于上下文。在通用库中,我们应该假设的是列表是不可变的。对列表中元素的更改将反射(reflect)给所有调用者,这是每次都返回相同引用的直接结果。

但是,如果这是一棵专门的不可变树(或其他任何东西),并以此形式进行了记录,那么您希望列表中的各项本身是不可变的,这将成为一个有争议的问题。

09-10 10:19
查看更多