龙目岛@Data 和@Builder 组合
Lombok @Data and @Builder combination
您好,我有一个关于@Data 和@Builder 组合的问题。
让我们想象一下这种情况:我有必须创建和修改的实体。
首先我创建它:
Entity entity = Pojo.builder()
.a("1")
.b("2")
.build();
经过一些操作,我不得不添加c
字段并修改a
。
我该怎么做?
这正常吗:
entity.setA("01");
entity.setC("3");
repo.save(entity);
还有更好的变体吗?
没关系。
Buider -> 对象创建,Set -> 创建后对象设置。
Builder 设计模式的目的是将复杂对象的构造与其表示分开。它是四人组设计模式之一。
您可以使用 setter 始终在实体上使用 @Accessors(chain = true)
来创建对象和设置字段。 chain 选项给我们 setters that return this。
Entity entity= new Entity().setName("Name").setBalance(10);
entity.setName("newName");
请注意,chain
默认为 true,但为了清楚起见,我明确设置了它。
对于没有 get 或 set 前缀的访问器,使用 @Accessors(fluent = true)
Entity entity= new Entity().name("Name").balance(10);
您好,我有一个关于@Data 和@Builder 组合的问题。 让我们想象一下这种情况:我有必须创建和修改的实体。 首先我创建它:
Entity entity = Pojo.builder()
.a("1")
.b("2")
.build();
经过一些操作,我不得不添加c
字段并修改a
。
我该怎么做?
这正常吗:
entity.setA("01");
entity.setC("3");
repo.save(entity);
还有更好的变体吗?
没关系。 Buider -> 对象创建,Set -> 创建后对象设置。
Builder 设计模式的目的是将复杂对象的构造与其表示分开。它是四人组设计模式之一。
您可以使用 setter 始终在实体上使用 @Accessors(chain = true)
来创建对象和设置字段。 chain 选项给我们 setters that return this。
Entity entity= new Entity().setName("Name").setBalance(10);
entity.setName("newName");
请注意,chain
默认为 true,但为了清楚起见,我明确设置了它。
对于没有 get 或 set 前缀的访问器,使用 @Accessors(fluent = true)
Entity entity= new Entity().name("Name").balance(10);