public class BuilderAnnotationTest {
<strong i="5">@Test</strong>
public void defalutValue() throws Exception {
assertThat(Entity.builder().build().isSingle()).isTrue();
}
}
<strong i="6">@Getter</strong>
<strong i="7">@Builder</strong>
class Entity{
private String name;
private boolean single = true;
}
重复#916。 有一个解决方法
<strong i="6">@Getter</strong>
@Builder(toBuilder=true)
<strong i="7">@AllArgsConstructor</strong>
@NoArgsConstructor(access=AccessLevel.PRIVATE)
public class Entity {
public static EntityBuilder builder() {
return PROTOTYPE.toBuilder();
}
private static final Entity PROTOTYPE = new Entity();
private String name;
private boolean single = true;
}
这也有效
public class BuilderAnnotationTest {
<strong i="6">@Test</strong>
public void defalutValue() throws Exception {
assertThat(new Entity().toBuilder().build().isSingle()).isTrue(); // note the "new" here
}
}
<strong i="7">@Getter</strong>
@Builder(toBuilder = true)
class Entity{
private String name;
private boolean single = true;
}
使用@Builder.Default
来解决这个问题。
最有用的评论
重复#916。 有一个解决方法