java - 当实例变量以 arraylist 形式存在时类的不变性

标签 java immutability

我有一个不可变的类

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

谁能详细解释一下这个概念?

最佳答案

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

要使一个类不可变,您需要确保它的所有 getter 返回状态可能发生变化的任何类的安全副本。

关于java - 当实例变量以 arraylist 形式存在时类的不变性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9006040/

相关文章:

c++ - 在 C++ 中使所有类型默认为常量

javascript - 复制对象数组并在不修改原始数组的情况下进行更改

javascript - 我想通过另一个数组中的 id 过滤出一个对象数组

java - Oracle 10g Clob 列中的特殊字符(UTF8 字符)返回为 ?或在 Java 中为空白

java - 如何修复log4j中的 “NoSuchMethodError”错误

java - 将原始文本添加到 SOAP header

scala - Scala 是否具有用于制作不可变数据结构的修改克隆的记录更新语法?

java - 按升序对双向链表进行排序

java - 我们如何删除 arrayList 中的多个值?

java - 何时使用不可变对象(immutable对象) (Java)