【发布时间】:2018-11-19 23:14:52
【问题描述】:
如何在不破坏不变性的情况下从另一个不可变对象获取更新的不可变对象。类似于在 Scala 中实现事物的方式或在 Immutables 库中实现事物的方式。
我怎样才能实现类似的目标 Customer.Builder.from(anotherCustomer).replaceOrder(oldOrder,newOrder).with(newName).build()
重用旧对象并将我想要的所有更改排队以构造新对象。
我正在使用 Java。
【问题讨论】:
-
你不能,否则对象将不再是不可变的。不过,您可以创建修改后的副本。
-
你的不可变对象是如何定义的?什么语言?给我们一些代码,我们可以给你一些建议。
-
类似于纠正拼写错误的名称?序列化它,对 XML 说,做一些魔术,然后反序列化它。魔术可能是反序列化为可变形式,但更好地直接处理 XML 或序列化。
标签: java performance scala immutability immutable-collections