繁体   English   中英

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

[英]Partially creating immutable object in java

我有一个不可变的对象,也有其生成器类。 我需要一种在两个阶段中创建对象的方法,其中在第一阶段中使用一些参数,而在其他阶段中使用其余参数。 有什么方法或框架可以做到这一点吗?

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

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

这是我的建议:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM