当实例变量作为arraylist存在时类的不变性

Mil*_*ara 5 java immutability

我有一个不可变的类

假设我有一个类型为ArrayList的成员变量的getter方法.在那种情况下,当我获得对该变量的引用时,我可以添加或删除它中的元素.在那种情况下,不变性似乎被侵犯了.

任何人都可以详细解释这个概念吗?

Ste*_*eod 3

你确实是对的。违反了不变性。

要使类不可变,您需要确保其所有 getter 返回任何状态可能会更改的类的安全副本。