工作记录------lombok中@Data包含哪些功能?

news2024/11/25 4:27:49

工作记录------lombok中@Data包含哪些功能?

在实体类中加上@Data后,实体类有哪些增强?

@Data
public class BaseProcedure {
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    private String procedureCode;

写上@Data后,点击maven----clean—complie(编译)后,
查看target,能够看到编译后的实体类对象。
在这里插入图片描述
具体代码如下所示:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.example.demo.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;

public class BaseProcedure {
    @TableId(
        value = "id",
        type = IdType.ASSIGN_UUID
    )
    private String id;
    private String procedureCode;
    private String procedureName;
    private Integer active;
    private String createBy;
    @DateTimeFormat(
        pattern = "yy-MM-dd HH:mm:ss"
    )
    private Date createTime;
    private String updateBy;
    @DateTimeFormat(
        pattern = "yy-MM-dd HH:mm:ss"
    )
    private Date updateTime;

    public BaseProcedure() {
    }

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

    public String getProcedureCode() {
        return this.procedureCode;
    }

    public String getProcedureName() {
        return this.procedureName;
    }

    public Integer getActive() {
        return this.active;
    }

    public String getCreateBy() {
        return this.createBy;
    }

    public Date getCreateTime() {
        return this.createTime;
    }

    public String getUpdateBy() {
        return this.updateBy;
    }

    public Date getUpdateTime() {
        return this.updateTime;
    }

    public BaseProcedure setId(final String id) {
        this.id = id;
        return this;
    }

    public BaseProcedure setProcedureCode(final String procedureCode) {
        this.procedureCode = procedureCode;
        return this;
    }

    public BaseProcedure setProcedureName(final String procedureName) {
        this.procedureName = procedureName;
        return this;
    }

    public BaseProcedure setActive(final Integer active) {
        this.active = active;
        return this;
    }

    public BaseProcedure setCreateBy(final String createBy) {
        this.createBy = createBy;
        return this;
    }

    public BaseProcedure setCreateTime(final Date createTime) {
        this.createTime = createTime;
        return this;
    }

    public BaseProcedure setUpdateBy(final String updateBy) {
        this.updateBy = updateBy;
        return this;
    }

    public BaseProcedure setUpdateTime(final Date updateTime) {
        this.updateTime = updateTime;
        return this;
    }

    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof BaseProcedure)) {
            return false;
        } else {
            BaseProcedure other = (BaseProcedure)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label107: {
                    Object this$active = this.getActive();
                    Object other$active = other.getActive();
                    if (this$active == null) {
                        if (other$active == null) {
                            break label107;
                        }
                    } else if (this$active.equals(other$active)) {
                        break label107;
                    }

                    return false;
                }

                Object this$id = this.getId();
                Object other$id = other.getId();
                if (this$id == null) {
                    if (other$id != null) {
                        return false;
                    }
                } else if (!this$id.equals(other$id)) {
                    return false;
                }

                Object this$procedureCode = this.getProcedureCode();
                Object other$procedureCode = other.getProcedureCode();
                if (this$procedureCode == null) {
                    if (other$procedureCode != null) {
                        return false;
                    }
                } else if (!this$procedureCode.equals(other$procedureCode)) {
                    return false;
                }

                label86: {
                    Object this$procedureName = this.getProcedureName();
                    Object other$procedureName = other.getProcedureName();
                    if (this$procedureName == null) {
                        if (other$procedureName == null) {
                            break label86;
                        }
                    } else if (this$procedureName.equals(other$procedureName)) {
                        break label86;
                    }

                    return false;
                }

                label79: {
                    Object this$createBy = this.getCreateBy();
                    Object other$createBy = other.getCreateBy();
                    if (this$createBy == null) {
                        if (other$createBy == null) {
                            break label79;
                        }
                    } else if (this$createBy.equals(other$createBy)) {
                        break label79;
                    }

                    return false;
                }

                label72: {
                    Object this$createTime = this.getCreateTime();
                    Object other$createTime = other.getCreateTime();
                    if (this$createTime == null) {
                        if (other$createTime == null) {
                            break label72;
                        }
                    } else if (this$createTime.equals(other$createTime)) {
                        break label72;
                    }

                    return false;
                }

                Object this$updateBy = this.getUpdateBy();
                Object other$updateBy = other.getUpdateBy();
                if (this$updateBy == null) {
                    if (other$updateBy != null) {
                        return false;
                    }
                } else if (!this$updateBy.equals(other$updateBy)) {
                    return false;
                }

                Object this$updateTime = this.getUpdateTime();
                Object other$updateTime = other.getUpdateTime();
                if (this$updateTime == null) {
                    if (other$updateTime != null) {
                        return false;
                    }
                } else if (!this$updateTime.equals(other$updateTime)) {
                    return false;
                }

                return true;
            }
        }
    }

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

    public int hashCode() {
        int PRIME = true;
        int result = 1;
        Object $active = this.getActive();
        result = result * 59 + ($active == null ? 43 : $active.hashCode());
        Object $id = this.getId();
        result = result * 59 + ($id == null ? 43 : $id.hashCode());
        Object $procedureCode = this.getProcedureCode();
        result = result * 59 + ($procedureCode == null ? 43 : $procedureCode.hashCode());
        Object $procedureName = this.getProcedureName();
        result = result * 59 + ($procedureName == null ? 43 : $procedureName.hashCode());
        Object $createBy = this.getCreateBy();
        result = result * 59 + ($createBy == null ? 43 : $createBy.hashCode());
        Object $createTime = this.getCreateTime();
        result = result * 59 + ($createTime == null ? 43 : $createTime.hashCode());
        Object $updateBy = this.getUpdateBy();
        result = result * 59 + ($updateBy == null ? 43 : $updateBy.hashCode());
        Object $updateTime = this.getUpdateTime();
        result = result * 59 + ($updateTime == null ? 43 : $updateTime.hashCode());
        return result;
    }

    public String toString() {
        return "BaseProcedure(id=" + this.getId() + ", procedureCode=" + this.getProcedureCode() + ", procedureName=" + this.getProcedureName() + ", active=" + this.getActive() + ", createBy=" + this.getCreateBy() + ", createTime=" + this.getCreateTime() + ", updateBy=" + this.getUpdateBy() + ", updateTime=" + this.getUpdateTime() + ")";
    }
}

根据编译后的文件,可以看到包括了:
无参构造器、
get方法、
set方法、
hashCode方法、
equals方法、
toString方法。

结论:@Data注解相当于

@NoArgsConstructor
@Getter
@Setter
@EqualsAndHashCode
@ToString
这5个注解集合,可以看到如果需要使用到这个实体类的全参构造方法,需要再加上@AllArgsConstructor注解。
如果没有特殊需求时,只写@Data注解即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/346302.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

字节青训营——秒杀系统设计学习笔记(二)

一、两次MD5加密设计 加密:出于安全考虑 第一次 (在前端加密,客户端):密码加密是(明文密码固定盐值)生成md5用于传输,目的,由于http是明文传输,当输入密码若…

Linux进程线程管理

目录 存储管理 linux内存管理基本框架 系统空间管理和用户空间管理 进程与进程调度 进程四要素 用户堆栈的扩展 进程三部曲:创建,执行,消亡 系统调用exit(),wait() 内核中的互斥操作 存储管理 linux内存管理基本框架 系统空间管理…

sql手工注入练习拿flag

sql手工注入练习拿flag 记录一下自己重新开始学习web安全之路⑤。 1、找注入点 ①url ②搜索框 ③登录框 2、找交互点 用单引号判断是否存在交互点,发现回显不正常,说明url存在有交互点 3、判断类型(char类型) 利用and 11 和…

Linux Shell脚本讲解

目录 Shell脚本基础 Shell脚本组成 Shell脚本工作方式 编写简单的Shell脚本 Shell脚本参数 Shell脚本接收参数 Shell脚本判断用户参数 文件测试与逻辑测试语句 整数测试比较语句 字符串比较语句 Shell流程控制 if条件判断语句 单分支 双分支 多分支 for循环语句…

第五章.与学习相关技巧—参数更新的最优化方法(SGD,Momentum,AdaGrad,Adam)

第五章.与学习相关技巧 5.1 参数更新的最优化方法 神经网络学习的目的是找到使损失函数的值尽可能小的参数,这是寻找最优参数的问题,解决这个问题的过程称为最优化。很多深度学习框架都实现了各种最优化方法,比如Lasagne深度学习框架&#xf…

Vue中使用天地图

Vue项目引入天地图 在vue的静态资源目录下的index.html中引入天地图的底图&#xff0c;开发天地图源码路径&#xff1a;天地图API 方法一&#xff1a;加载天地图&#xff0c;引用&#xff1a;public/index.html <script type"text/javascript" src"http:/…

来来来,手摸手写一个hook

hello&#xff0c;这里是潇晨&#xff0c;今天就带着大家一起来手写一个迷你版的hooks&#xff0c;方便大家理解hook在源码中的运行机制&#xff0c;配有图解&#xff0c;保姆级的教程&#xff0c;只求同学一个小小的&#x1f44d;&#xff0c;&#x1f436;。 第一步&#xf…

【软件测试】团队测试技术体现,遇到不可复现bug处理方式......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 测试技术带来的是PP…

ThingsBoard-规则链-check alarm status

1、概述 从今天开始,专门讲解ThingsBoard的规则链,每一个节点都会详细讲解,并且配套案例,让大家都能理解,喜欢请点个关注。今天讲的是筛选器的第第一个节点【check alarm status】,意思是检测告警状态。 2、节点理解 2.1、概述 【check alarm status】节点如图所示:…

解立方根-蓝桥杯

题目 分析 主要是运用二分法使复杂度减低。 代码 #include<iostream> #include<iomanip> #include<cmath> using namespace std; #define double long double const double eps 1e-12; int main() {int T 1;cin >> T;while (T--){double n;cin &g…

LMS 最佳实践:学习管理系统中的知识管理!

企业需要在整个组织中收集、存储和传播知识。我们被信息淹没了&#xff0c;因此应该充分利用学习管理系统&#xff08;LMS&#xff09;来组织业务资产并支持知识管理&#xff08;KM&#xff09;战略。LMS 不仅仅是一个捕获电子学习单元和多项选择题的系统。它很可能没有充分发挥…

代码随想录算法训练营第二十八天 | 491.递增子序列,46.全排列,47.全排列 II

一、参考资料递增子序列题目链接/文章讲解&#xff1a;https://programmercarl.com/0491.%E9%80%92%E5%A2%9E%E5%AD%90%E5%BA%8F%E5%88%97.html 视频讲解&#xff1a;https://www.bilibili.com/video/BV1EG4y1h78v 全排列题目链接/文章讲解&#xff1a;https://programmercarl.…

从零学架构-基础部分

一、架构的基础将学习的架构设计知识总结出来&#xff0c;分享给大家。1.1什么是架构架构和框架是什么关系&#xff1f;有什么区别?Linux有架构&#xff0c;MySQL有架构&#xff0c;JVM也有架构&#xff0c;应该关注哪个架构&#xff1f;金融有架构&#xff0c;支付有架构&…

【排序算法】数据结构排序详解

前言&#xff1a; 今天我们将讲解我们数据结构初阶的最后一部分知识的学习&#xff0c;也是最为“炸裂”的知识---------排序算法的讲解&#xff01;&#xff01;&#xff01;&#xff01; 目录1.排序的概念及其运用1.1排序的概念1.2排序运用2.常见排序算法的实现2.1 插入排序2…

Java 基础面试题——集合

目录1.Java 有哪些常用容器&#xff08;集合&#xff09;&#xff1f;2.Collection 和 Collections 有什么区别&#xff1f;3.List、Set、Map 之间的区别是什么&#xff1f;4.HashMap 的长度为什么是 2 的 N 次方&#xff1f;源码中是如何保证的&#xff1f;5.HashMap 和 Hasht…

ChatGPT 下一步,分配对象脱单有望

ChatGPT 火了&#xff0c;上一次这么热闹还是上一次……那时最紧俏的概念叫元宇宙。 混沌时期&#xff0c;鱼龙混杂。资本市场靠新故事造梦&#xff0c;科技巨头争相加入竞赛&#xff0c;也有脑子活泛的已经利用它的巨大热度搞上了小钱钱——活跃在某宝某鱼上&#xff0c;贩卖…

2023版Java面试汇总!全面对标阿里P7,学完,化身offer收割机

最近内卷严重&#xff0c;各种跳槽裁员&#xff0c;本文主要是为了帮大家快速回顾Java中知识点&#xff0c;这套&#xff08;详细笔记/面试题&#xff09;它几乎涵盖了所有的Java技术栈面试题和答案&#xff0c;相信可以帮助大家在金三银四&#xff0c;最短的时间内用作学习和面…

基于微信小程序的优选驾考小程序

文末联系获取源码 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏览器…

SpringBoot查询接口传入参数为List,XML的写法

✉️ 查询业务 ➿ 目前互联网项目的诸多业务中数查询业务居多&#xff0c;而查询业务中又数展示类接口、报表类接口是我们接触最多的查询类接口。在实际项目中&#xff0c;不是全局查询数据就做完了业务&#xff0c;这样的需求也没有意义。条件查询因此作为最普遍的查询业务&am…

软件测试之优秀的产品质量评估模型的特征

产品质量评估中的几个场景&#xff1a; 场景1&#xff1a;项目计划的时间到了&#xff0c;就发布产品。 场景2&#xff1a;将缺陷修复率作为产品的质量目标。产品必须达到一定的缺陷修复率&#xff0c;才能发布。 场景3&#xff1a;我们为产品建立了很多指标来作为质量目标&…