我有一个不可变的类
假设我有一个 ArrayList 类型的成员变量的 getter 方法。在这种情况下,当我获得对该变量的引用时,我可以从中添加或删除一个元素。在那种情况下,不变性似乎被违反了。
谁能详细解释一下这个概念?
最佳答案
你确实是对的。违反不变性。
要使一个类不可变,您需要确保它的所有 getter 返回状态可能发生变化的任何类的安全副本。
关于java - 当实例变量以 arraylist 形式存在时类的不变性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9006040/