我有一个不可变的Java对象,类似于以下内容:
public class Entity {
private String field1;
private String field2;
public Entity(String field1, String field2) {
this.field1 = field1;
this.field2 = field2;
}
public String getField1() {...}
public String getField2() {...}
}
我希望在我的测试代码中为那个用Groovy编写的类添加一个构建器。我尝试使用@groovy.transform.builder.Builder
来实现。
由于Entity类在prod代码中,我无法更改它,因此我尝试使用groovy.transform.builder.ExternalStrategy
策略来使用构建器。
@Builder(builderStrategy = ExternalStrategy, forClass = Entity)
class EntityBuilder {
}
但是我无法将其用于不可变对象。
因此,我想知道实现不可变Java对象的Groovy构建器的最佳方法是什么?
Entity
类是final
,否则它并不是真正的不可变类。 - jaco0646