转载:https://blog.csdn.net/qq_35568099/article/details/80438538
pom依赖

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

java~lombok里的Builder注解

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();

lombok 下的@Builder注解用法相关推荐

  1. 关于lombok中的Builder注解解析

    文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼:我热爱编程.热爱算法.热爱开源.所有源码在我的个人github :这博客是记录我学习的点点滴滴,如果您对 Python.Java.AI ...

  2. lombok中的builder注解居然是一种设计模式:让我们了解一下超级实用的“建造者模式”吧

    lombok中的builder注解本质上是为你生成了一个构造器Builder类,通过这个类我们可以构造出带此注解的对象.本质上它实现了设计模式中一种经典的模式:建造者模式 1.认识: ①一句话来说:封 ...

  3. Java中lombok @Builder注解使用详解

    简介 Lombok大家都知道,在使用POJO过程中,它给我们带来了很多便利,省下大量写get.set方法.构造器.equal.toString方法的时间.除此之外,通过@Builder注解,lombo ...

  4. lombok几个基本注解的使用@Data @AllArgsConstructor @NoArgsConstructor @Builder

    lombok是一款在java开发中简洁化代码十分有用的插件工具,这篇博客对较为常用的几种注解进行记录,分享学习心得. 使用lombok注解,目的和作用就在于不用再去写经常反复去写的(如Getter,S ...

  5. lombok中的@Builder、@Singular注解

    @Builder 之前没用过@Builder注解,稍微学习了一下,发现这个注解就是方便new对象的. 我以前在实体类上都是加@AllArgsConstructor.@NoArgsConstructor ...

  6. lombok有参构造注解_Java高效开发工具: Lombok

    Lombok, 一个Java开发必备效率工具,可以大大避免编写一些常用方法(get/set, hashcode等),简化开发.虽然现在IDE很多都可以通过快捷键生成POJO的一些方法了,但是如果该PO ...

  7. Java 注解用法详解——@SuppressWarnings

    转自: https://www.cnblogs.com/fsjohnhuang/p/4040785.html Java魔法堂:注解用法详解--@SuppressWarnings 一.前言 编码时我们总 ...

  8. Spring系列(六):@Conditional注解用法介绍

    今天给大家介绍@Conditional懒加载注解用法,希望对大家能有所帮助! 1.@Conditional注解介绍 @Conditional是Spring4版本新提供的一种注解,它的作用是按照设定的条 ...

  9. import lombok 报错_Lombok注解@Getter @Setter详解

    1.为什么强大 ​项目中经常使用bean,entity等类,绝大部分数据类类中都需要get.set.toString.equals和hashCode方法,尽管IDE工具都会帮我们生成.但自动生成这些代 ...

最新文章

  1. ‘Link‘ is not exported from ‘react-router‘
  2. 关于unity的一个不错的插件平台
  3. ibatis.net:第五天,QueryForObject
  4. ef 数据迁移mysql_07116.3.0如何将CM的外部PostgreSQL数据库迁移至MySQL服务
  5. 黑马Android全套视频无加密完整版
  6. World Token官网钱包收益是骗人的吗?是传销吗?
  7. android onitemclicklistener 参数,android – 对listview中的项使用setOnItemClickListener
  8. 产品经理如何培养敏锐的商业嗅觉
  9. 黑苹果睡眠唤醒usb失灵_20191121关于睡眠唤醒,仍然黑屏,显示器无信号的问题...
  10. openssh8.6升级修复(CVE-2020-15778)(CVE-2018-15919)(CVE-2017-15906)等漏洞
  11. CSS中的contenteditable属性
  12. Mysql 5.7 Gtid内部学习(八) Gtid带来的运维改变
  13. 大智慧705服务器文件夹,大智慧2文件目录结构.doc
  14. [C++] intptr_t
  15. 七年未必痒:如何营造亲密关系的新鲜感?
  16. 喜报 | 谱尼测试获得零跑科技第三方试验室认可
  17. PPT | 5G时代的视频云服务关键技术与实践
  18. 都说学3D建模赚钱,到底学了能做什么?
  19. 自助广告插件系统 7.4版本 高颜值网站广告代码
  20. 关于SIO_RCVALL

热门文章

  1. [再寄小读者之数学篇](2014-05-30 有限无界函数)
  2. nginx服务器安全,要注意的地方
  3. Exchange企业实战技巧(5)配置OWA域名简写
  4. 转载:JQuery制作的选项卡改进版
  5. 一个AndroidStudio项目的目录
  6. 利用Powershell自动部署asp.net mvc网站项目 (一)
  7. C#中的MessageBox消息对话框
  8. 问题1:程序员要做一辈子?
  9. FLEX是什么及与FLASH的关系的介绍
  10. 麦克纳姆轮运动原理_【带字幕视频】麦克纳姆轮你了解多少?ESP32的WIFI信号,居然能覆盖10公里?...