Tag: defensive copy

关于不可变类防御性复制

我有一个关于创建Immutable类的查询。 以下是我考虑的要点: 让课程最终 使所有成员最终,在静态块或构造函数中显式设置它们 让所有成员都私密 否修改状态的方法 要非常小心地限制对可变成员组件的访问(请记住该字段可能是最终的,但对象仍然可以是可变的。即私有最终日期imStillMutable) – 请参阅防御性复制或其表兄弟拷贝构造函数以获取更多信息。 但是我完全不明白这一点,请你告诉或给我一个例子,其中5点在这个例子中是清楚的?

如何制作对象的防御性副本?

如何制作包含不可变对象中可变字段的Mutable对象的防御性副本? class ImmutableObject { private final MutableObject immutable_field; ImmutableObject(MutableObject y) { this.immutable_field = y; } } class MutableObject { public int mutable_field; } MutableObject没有允许我设置字段的构造函数。 MutableObject的当前状态应该在Immutable Object中捕获并且永远不会改变。