问题描述
我有一个 Person
类,它有一个内部类 Address
的引用类型字段。
当实例化一个 Person
对象时,我想通过 Lombok 的 @Builder
使用方法链策略和构建器模式,如下所示。
class PersonTest {
@Test
void builder() {
Person.builder()
.name("James")
.addressBuilder()
.cityName("SEOul")
.zipCode("16814")
.buildAddress()
.build();
}
}
我正在寻找 Lombok 文档和 stackoverflow 中的任何技巧来使用上述构建器模式,但我不能
所以我在构建器类中添加了一些方法,如下所示,并且我的 intellij 没有显示任何错误。
@Builder
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class Person {
private String name;
private Address address;
public static class PersonBuilder {
public Address.AddressBuilder addressBuilder(){
return new Address.AddressBuilder(this);
}
}
@Builder
@AllArgsConstructor(access = AccessLevel.PRIVATE)
private static class Address {
private String cityName;
private String zipCode;
public static class AddressBuilder{
private PersonBuilder personBuilder;
private AddressBuilder(PersonBuilder personBuilder){
this.personBuilder=personBuilder;
}
public PersonBuilder buildAddress(){
return personBuilder.address(this.build());
}
}
}
}
java:com.sample.entity.Person.Address.AddressBuilder 类中的构造函数 AddressBuilder 不能应用于给定类型; 需要:com.sample.entity.Person.PersonBuilder 发现:没有参数 原因:实际和形式参数列表的长度不同
我希望找到任何解决此构建错误的方法,或者如果可能的话,找到一种优雅的方式来使用上述方法链。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)