@SuperBuilder(toBuilder = true)中的builder()使用案例
时间: 2024-05-06 12:20:10 浏览: 147
@SuperBuilder(toBuilder = true)是Lombok提供的一个注解,用于自动生成一个带有所有参数的builder()方法,并且该方法返回一个新的Builder对象,可以用于构建对象。使用该注解的类必须满足以下条件:
1. 类必须是final或abstract;
2. 类必须有一个无参构造函数;
3. 类必须有一个或多个属性,每个属性必须有一个getter方法,setter方法是可选的。
下面是一个使用@SuperBuilder(toBuilder = true)注解的例子:
```
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@Data
@NoArgsConstructor
@SuperBuilder(toBuilder = true)
public class Person {
private String name;
private int age;
private String address;
}
```
在这个例子中,我们使用@SuperBuilder(toBuilder = true)注解来自动生成一个带有所有参数的builder()方法,并且该方法返回一个新的Builder对象。使用该builder()方法可以构建一个新的Person对象,如下所示:
```
Person person1 = Person.builder()
.name("Tom")
.age(20)
.address("New York")
.build();
Person person2 = person1.toBuilder()
.age(25)
.address("Los Angeles")
.build();
```
在这个例子中,我们首先使用builder()方法来构建一个新的Person对象,然后使用toBuilder()方法来创建一个新的Builder对象,并将该对象的属性进行修改,最后使用build()方法来构建一个新的Person对象。
阅读全文
相关推荐


















