星驰编程网

免费编程资源分享平台_编程教程_代码示例_开发技术文章

Lombok中@Builder注解的参数说明

前面文章中已经详细介绍了Lombok中@Builder注解的使用,以及代码演示。本文进一步分析@Builder注解的参数配置。

详细介绍Lombok中@Builder注解的用法

在 IntelliJ IDEA 中查看 Lombok 生成的代码

Java效率工具Lombok:让Java代码更优雅


一、@Builder 注解源码

下面我们再来详细看看@Builder这个注解类的详细实现:



// 指定实体类中创建 Builder 的方法的名称,默认为: builder
String builderMethodName() default "builder";
// 指定 Builder 中用来构建实体类的方法的名称,默认为:build
String buildMethodName() default "build";
// 指定创建的建造者类的名称,默认为:实体类名+Builder
String builderClassName() default "";
// 使用toBuilder可以实现以一个实例为基础继续创建一个对象。也就是重用原来对象的值
boolean toBuilder() default false;


二、使用@Builder 注解参数

builderMethodName : 创建构建器实例的方法名称

buildMethodName:构建器类中创建构造器实例的方法名称

builderClassName:构造器类名

toBuilder:生成toBuilder方法


下面这段示例代码,使用了上述@Builder 注解参数:

import lombok.Builder;
import lombok.ToString;

@Builder(builderClassName = "Builder",
 buildMethodName = "create",
 builderMethodName = "creator",
 toBuilder = true
)
@ToString
public class User {
 private Integer id;
 private String name;
 private String address;

 public static void main(String[] args) {
 User user = User.creator()
 .id(100)
 .name("rickie")
 .address("Shanghai")
 .create();
 System.out.println(user);

 User user2 = new User(102, "Jack", "上海");
 user2 = user2.toBuilder()
 .name("马老师")
 .create();
 System.out.println(user2);
 }
}

通过IDEA中的结构(Structure)视图,可以看到如下变化,如图所示:


同时,在使用构建器时,也需要更改代码,如图所示:


启动应用,输出结果如下所示:

User(id=100, name=rickie, address=Shanghai)

User(id=102, name=马老师, address=上海)

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言