Java的中lombok下的@Builder注解用法详解

 更新时间:2023年11月14日 11:49:52   作者:huayang183  
这篇文章主要介绍了Java的中lombok下的@Builder注解用法详解,lombok注解在java进行编译时进行代码的构建,对于java对象的创建工作它可以更优雅,不需要写多余的重复的代码,在出现lombok之后,对象的创建工作更提供Builder方法,需要的朋友可以参考下

lombok的@Builder注解用法

pom依赖 

<dependency>

            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>0.10.2</version>

   </dependency>

lombok注解在java进行编译时进行代码的构建,对于java对象的创建工作它可以更优雅,不需要写多余的重复的代码,这对于JAVA开发人员是很重要的

在出现lombok之后,对象的创建工作更提供Builder方法,它提供在设计数据实体时,对外保持private setter,而对属性的赋值采用Builder的方式

这种方式最优雅,也更符合封装的原则,不对外公开属性的写操作!

@Builder声明实体,表示可以进行Builder方式初始化,@Value注解,表示只公开getter,对所有属性的setter都封闭,即private修饰,所以它不能和@Builder现起用

设计实体

@Builder(toBuilder = true)
@Getter
public class UserInfo {
  private String name;
  private String email;
  @MinMoney(message = "金额不能小于0.")
  @MaxMoney(value = 10, message = "金额不能大于10.")
  private Money price;
 
}

@Builder注解赋值新对象

UserInfo userInfo = UserInfo.builder()
        .name("zzl")
        .email("bgood@sina.com")
        .build();

@Builder注解修改原对象的属性值

修改实体,要求实体上添加@Builder(toBuilder=true)

 userInfo = userInfo.toBuilder()
        .name("OK")
        .email("zgood@sina.com")
        .build();

到此这篇关于Java的中lombok下的@Builder注解用法详解的文章就介绍到这了,更多相关lombok的@Builder注解用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MyBatis-Plus注解配置、条件构造器与自定义SQL的复杂操作实例详解

    MyBatis-Plus注解配置、条件构造器与自定义SQL的复杂操作实例详解

    MyBatis-Plus是一个MyBatis的增强工具,提供快速开发单表CRUD操作等功能,通过依赖引入和配置,可以快速创建和使用Mapper接口进行数据库操作,这篇文章通过实例代码介绍MyBatis-Plus注解配置、条件构造器与自定义SQL的复杂操作,感兴趣的朋友一起看看吧
    2026-02-02
  • 初识Spark入门

    初识Spark入门

    这篇文章主要介绍了初识Spark入门,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Java模拟服务器解析web数据

    Java模拟服务器解析web数据

    本篇文章主要给大家详细分享了搭建JavaWeb服务器的详细步骤以及用到的代码,对此有需要的朋友可以跟着学习下,希望能给你带来帮助
    2021-07-07
  • 详解使用JavaMailSender给曾经心爱的她再中秋发送一封特别的邮件

    详解使用JavaMailSender给曾经心爱的她再中秋发送一封特别的邮件

    网站的服务端向用户发邮件时,邮件中往往需要携带图片,链接等内容。所以为了方便起见,我们一般发送HTML格式的邮件,那么怎么去拼一个HTML格式的邮件呢?——Thymeleaf。开始之前,先新建一个SpringBoot项目,并添加需要用到的依赖。然后就可以继续往下了
    2022-09-09
  • 一文详解Java属性为什么不能是is开头的boolean

    一文详解Java属性为什么不能是is开头的boolean

    在Java实体类定义中,boolean类型的属性命名常引发争议,阿里巴巴Java开发手册建议避免使用is作为布尔类型属性的前缀,原因在于当实体类被序列化或反序列化时,基于JavaBean规范的框架可能会移除或忽略is,导致不一致的字段名,文中介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • Kotlin 基础语法详细介绍

    Kotlin 基础语法详细介绍

    这篇文章主要介绍了Kotlin 基础语法详细介绍的相关资料,需要的朋友可以参考下
    2017-05-05
  • Java class文件格式之属性详解_动力节点java学院整理

    Java class文件格式之属性详解_动力节点java学院整理

    这篇文章主要介绍了Java class文件格式之属性详解,需要的朋友可以参考下
    2017-06-06
  • Springboot的@Cacheable注解使用方法

    Springboot的@Cacheable注解使用方法

    @Cacheable 是 Spring 框架提供的一种基于缓存的注解,它可以被应用在方法上以指示该方法的结果需要被缓存起来,缓存在哪个 Cache 中以及该方法使用何种缓存键,以下代码展示了如何使用 @Cacheable 注解,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • 利用Kafka动态调整topic分区partition

    利用Kafka动态调整topic分区partition

    这篇文章主要介绍了利用Kafka动态调整topic分区partition问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Spring Security中如何获取AuthenticationManager对象

    Spring Security中如何获取AuthenticationManager对象

    有时需要使用AuthenticationManager(以下简称Manager)对象,可是这个对象不是Bean,没有直接保存在Spring的Bean库中,那么如何获取Spring Security中的这个对象呢,需要的朋友可以参考下
    2022-11-11

最新评论