Lombok的@Builder注解
Lombok的@Builder注解
- builder模式
- 示例用法
开源项目中看到这个注解,了解了一下,感觉对于多属性对象很有用
builder模式
先了解一下什么是builder模式。Builder 模式的目的是为了简化复杂对象的创建过程,尤其是当一个类拥有很多可选属性时。如果类的构造函数参数过多,直接使用构造器
可能会导致代码难以维护且容易出错。而 Builder 模式通过链式调用
的方式,使得代码更具可读性和可维护性。
简言之,使用该注解后,可以通过链式调用设置对象属性。
示例用法
@Data
@Builder
public class User {private String name;private int age;private String email;
}// 使用
User user = User.builder().name("John Doe").age(25).email("john@example.com").build();
看一下
target
中生成的.class
文件,看看lombok做了什么
// 生成的静态内部类public static class UserBuilder {@Generatedprivate String name;@Generatedprivate int age;@Generatedprivate String email;@Generatedpublic UserBuilder name(String name) {this.name = name;return this;}@Generatedpublic UserBuilder age(int age) {this.age = age;return this;}@Generatedpublic UserBuilder email(String email) {this.email = email;return this;}// 构建方法@Generatedpublic User build() {return new User(this.name, this.age, this.email);}}// 提供了一个静态 builder() 方法@Generatedpublic static UserBuilder builder() {return new UserBuilder();}