聊聊Lombok中的@Builder注解使用教程


Posted in Java/Android onNovember 17, 2021

Lombok中的@Builder注解的使用

作用

@Builder注解的作用主要是用来生成对象,并且可以为对象链式赋值。

引入依赖

因为@Builder注解是lombok中的东西,所以第一步我们需要引入lombok的依赖,如下图:

聊聊Lombok中的@Builder注解使用教程

第二步给实体类加上@Builder注解

第二步我们需要给我们的实体类加上一个@Builder注解,如下图:

聊聊Lombok中的@Builder注解使用教程

第三步使用测试使用@Builder注解生成对象

聊聊Lombok中的@Builder注解使用教程

实体类加上@Builder注解之后的编译结果

实体类加上@Builder注解之后,编译之后会多出一个builder()方法,和一个CardBuilder静态内部类,如下图:

聊聊Lombok中的@Builder注解使用教程

聊聊Lombok中的@Builder注解使用教程

代码如下:

public class Card {
    private int id;
    private String name;
    private boolean sex;

    public static Card.CardBuilder builder() {
        return new Card.CardBuilder();
    }

    public Card(int id, String name, boolean sex) {
        this.id = id;
        this.name = name;
        this.sex = sex;
    }

    public Card() {
    }

    public int getId() {
        return this.id;
    }

    public String getName() {
        return this.name;
    }

    public boolean isSex() {
        return this.sex;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setSex(boolean sex) {
        this.sex = sex;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof Card)) {
            return false;
        } else {
            Card other = (Card)o;
            if (!other.canEqual(this)) {
                return false;
            } else if (this.getId() != other.getId()) {
                return false;
            } else {
                Object this$name = this.getName();
                Object other$name = other.getName();
                if (this$name == null) {
                    if (other$name == null) {
                        return this.isSex() == other.isSex();
                    }
                } else if (this$name.equals(other$name)) {
                    return this.isSex() == other.isSex();
                }

                return false;
            }
        }
    }

    protected boolean canEqual(Object other) {
        return other instanceof Card;
    }

    public int hashCode() {
        int PRIME = true;
        int result = 1;
        int result = result * 59 + this.getId();
        Object $name = this.getName();
        result = result * 59 + ($name == null ? 43 : $name.hashCode());
        result = result * 59 + (this.isSex() ? 79 : 97);
        return result;
    }

    public String toString() {
        return "Card(id=" + this.getId() + ", name=" + this.getName() + ", sex=" + this.isSex() + ")";
    }

    public static class CardBuilder {
        private int id;
        private String name;
        private boolean sex;

        CardBuilder() {
        }

        public Card.CardBuilder id(int id) {
            this.id = id;
            return this;
        }

        public Card.CardBuilder name(String name) {
            this.name = name;
            return this;
        }

        public Card.CardBuilder sex(boolean sex) {
            this.sex = sex;
            return this;
        }

        public Card build() {
            return new Card(this.id, this.name, this.sex);
        }

        public String toString() {
            return "Card.CardBuilder(id=" + this.id + ", name=" + this.name + ", sex=" + this.sex + ")";
        }
    }
}

到此这篇关于Lombok中的@Builder注解的使用的文章就介绍到这了,更多相关Lombok @Builder注解内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
分享一些Java的常用工具
Jun 11 Java/Android
springboot中一些比较常用的注解总结
Jun 11 Java/Android
详解java如何集成swagger组件
Jun 21 Java/Android
springboot集成flyway自动创表的详细配置
Jun 26 Java/Android
springboot中rabbitmq实现消息可靠性机制详解
Sep 25 Java/Android
关于EntityWrapper的in用法
Mar 22 Java/Android
Android自定义ScrollView实现阻尼回弹
Apr 01 Java/Android
教你在 Java 中实现 Dijkstra 最短路算法的方法
Apr 08 Java/Android
Springboot中如何自动转JSON输出
Jun 16 Java/Android
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
Jul 07 Java/Android
一文了解Java动态代理的原理及实现
Jul 07 Java/Android
springboot 多数据源配置不生效遇到的坑及解决
Nov 17 #Java/Android
深入解读Java三大集合之map list set的用法
详解JAVA的控制语句
Nov 11 #Java/Android
Java 实战项目之家居购物商城系统详解流程
Nov 11 #Java/Android
Java8中Stream的一些神操作
springboot如何接收application/x-www-form-urlencoded类型的请求
Nov 02 #Java/Android
Java 在生活中的 10 大应用
Nov 02 #Java/Android
You might like
shopex主机报错误请求解决方案(No such file or directory)
2011/12/27 PHP
php格式化电话号码的方法
2015/04/24 PHP
PHP性能分析工具XHProf安装使用教程
2015/05/13 PHP
Jquery实现自定义弹窗示例
2014/03/12 Javascript
PHP守护进程实例
2015/03/06 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
编写React组件项目实践分析
2018/03/04 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
2020/03/04 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
Python版的文曲星猜数字游戏代码
2013/09/02 Python
Python 正则表达式(转义问题)
2014/12/15 Python
把项目从Python2.x移植到Python3.x的经验总结
2015/04/20 Python
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
Django中的文件的上传的几种方式
2018/07/23 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
餐饮业会计岗位职责
2013/12/19 职场文书
办理信用卡工作证明
2014/01/11 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
幼儿园教师国培感言
2014/02/02 职场文书
企业年度评优方案
2014/06/02 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
老公保证书怎么写
2015/02/26 职场文书
总经理司机岗位职责
2015/04/10 职场文书
2015年工商所工作总结
2015/05/21 职场文书
观后感的写法
2015/06/19 职场文书