在java中部分创建不可变对象

时间:2017-03-07 22:18:22

标签: java object immutability

我有一个不可变对象,它也有它的构建器类。我需要一种方法来创建两个阶段的对象,其中第一阶段有一些参数,另一阶段有休息。有没有办法或框架来做到这一点?

3 个答案:

答案 0 :(得分:1)

您可以将构建器传递到第二阶段,也可以将旧对象中的数据复制到新对象中。

良好的构建器实现将有一种复制对象的方法。 例如,使用lombok,您可以使用toBuilder选项,该选项将从现有对象创建构建器,并允许您使用旧对象中的数据创建新对象。

答案 1 :(得分:0)

这是我的建议:

遵循Builder设计模式,每个阶段都有两个构建器。我认为这就足够了。我怀疑会有这样的框架。

答案 2 :(得分:0)

如果您遵循不可变对象的所有规则,则不能这样做 每new只调用一次构造函数。

两种可能的方式是wrapping或使用reflection