Lombok的使用及注解含义

文章目录

  • 一、简介
  • 二、如何使用
    • 2.1、在IDEA中安装Lombok插件
    • 2.2、添加maven依赖
  • 三、常用注解
    • 3.1、@Getter / @Setter
    • 3.2、@ToString
    • 3.3、@NoArgsConstructor / @AllArgsConstructor
    • 3.4、@EqualsAndHashCode
    • 3.5、@Data
    • 3.6、@Value
    • 3.7、@Accessors
      • 3.7.1、@Accessors(chain = true)
      • 3.7.2、@Accessors(fluent = true)
      • 3.7.3、@Accessors(prefix = "xxx")
    • 3.8、@Slf4j

一、简介

Lombok可以通过注解来帮助我们简化实体对象(POJO)的代码书写

二、如何使用

2.1、在IDEA中安装Lombok插件

File -> Settings -> Plugins

image-20230810133628791

image-20230810133706551

安装完成后重启IDEA

2.2、添加maven依赖

在 pom.xml 文件里增加

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope>
</dependency>

三、常用注解

@Getter / @Setter:自动生成类的 get() 和 set() 方法

@ToString:自动生成 toString() 方法

@NoArgsConstructor / @AllArgsConstructor:自动生成无参构造函数,全参构造函数

@EqualsAndHashCode:自动生成 equals() 和 hashCode() 方法

@Data: 相当于 @Getter、@Setter、@EqualsAndHashCode、@ToString 组合的效果

@Value:相当于 @AllArgsConstructor、@Getter、@EqualsAndHashCode、@ToString 组合的效果,并且类和变量都变成 final

@Accessors:可以配置生成 get() 和 set() 方法的样式和命名规则

@Slf4j:自动生成类的 log 静态常量

3.1、@Getter / @Setter

自动生成类的 get() 和 set() 方法

image-20230811163331544

3.2、@ToString

自动生成 toString() 方法

image-20230811163700637

3.3、@NoArgsConstructor / @AllArgsConstructor

自动生成无参构造函数,全参构造函数

image-20230811163939408

这里需要注意,如果不定义构造函数,编译器会默认生成一个空构造函数,但是当你定义了构造函数,编译器就不会生成空构造函数,所以一般这两个注解一起使用,除非只要全参构造函数

3.4、@EqualsAndHashCode

自动生成 equals() 和 hashCode() 方法

image-20230811164537596

3.5、@Data

相当于 @Getter、@Setter、@EqualsAndHashCode、@ToString 组合的效果

3.6、@Value

相当于 @AllArgsConstructor、@Getter、@EqualsAndHashCode、@ToString 组合的效果,并且类和变量都变成 final

3.7、@Accessors

这个注解需要结合 @Getter、@Setter 使用,当然 @Data 也可以

这个注解有三个参数

public @interface Accessors {boolean fluent() default false;boolean chain() default false;String[] prefix() default {};
}

3.7.1、@Accessors(chain = true)

我们先看 fluent 参数,将其设置为 true,相当于 get() 方法不受影响,set() 方法会返回对象本身(开启链式编程)

image-20230811164852972

这样我们创建对象后,可以这样赋值

public static void main(String[] args) {User user = new User();user.setUserId("1").setUserName("张三");
}

3.7.2、@Accessors(fluent = true)

再来看 fluent 参数,将其设置为 true,相当于,get() 和 set() 方法的 get 和set 字样去除了,并且 set 方法会返回对象本身(开启链式编程)

image-20230811171202702

这样我们创建对象后,可以这样赋值

public static void main(String[] args) {User user = new User();user.userId("1").userName("张三");
}

3.7.3、@Accessors(prefix = “xxx”)

使用prefix属性,get() 和set() 方法会忽视属性名的指定前缀,这里我们用 @Accessors(prefix = “user”) 举例,相当于 get() 和 set() 方法去除了 user 字样

image-20230811171710258

3.8、@Slf4j

自动生成该类的 log 静态常量

image-20230811173128922

当然我们一般用在业务处理类上,方便打印日志

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

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

相关文章

PHP证券交易员学习网站mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP证券交易员学习网站 是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 下载地址https://download.csdn.net/download/qq_41221322/88205549 PHP证券交易员…

Similarities:精准相似度计算与语义匹配搜索工具包,多维度实现多种算法,覆盖文本、图像等领域,支持文搜、图搜文、图搜图匹配搜索

Similarities&#xff1a;精准相似度计算与语义匹配搜索工具包&#xff0c;多维度实现多种算法&#xff0c;覆盖文本、图像等领域&#xff0c;支持文搜、图搜文、图搜图匹配搜索 Similarities 相似度计算、语义匹配搜索工具包&#xff0c;实现了多种相似度计算、匹配搜索算法&…

JAVA面向对象基础 对象 类 方法学习笔记

面向对象基础 类 构造 对象 使用对象 对象.方法&#xff08;&#xff09; 类&#xff1a;[访问控制符] class 类名{ } 属性&#xff1a;[访问控制符] 数据类型 变量名; 方法&#xff1a;[访问控制符] void|返回值类型 方法名; 类名 对象new 类名(); 练习景区门…

【C++杂货铺】初识类和对象

文章目录 前言一、类的引入二、类的定义三、类的访问限定符及封装四、类的作用域五、类的实例化六、类对象模型七、this指针 前言 &#x1f4d6;面向过程 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。以…

[XJTUSE]面向对象考试复习指南

文章目录 面向对象考试复习指南1、语言基础(1) Java语言的历史和Java程序的执行机制1&#xff09;Java成员2&#xff09;Java历史3&#xff09;JDK、JRE、JVM、API、GC4&#xff09;Java程序执行机制 (2) 标识符与保留字1&#xff09;标识符2&#xff09;保留字 (3) 初始化1&am…

Python面向对象:闭包

闭包 一、定义类二、创建和调用对象成员三、使用属性1、添加新属性2、获取属性值3、修改新属性4、删除属性5、判断属性是否存在或者属性是否有值6、查看对象或类的所有属性和方法 四、定义和调用方法五、self六、编程练习 一、定义类 Python中的数据类型都是类&#xff0c;类是…

CH3-面向对象上 (4个案例实现)

【案例3-1】基于控制台的购书系统 【案例介绍】 案例描述 ​ 伴随互联网的蓬勃发展&#xff0c;网络购书系统作为电子商务的一种形式&#xff0c;正以其高效、低成本的优势逐步成为新兴的经营模式&#xff0c;人们已经不再满足互联网的用途仅仅局限于信息的浏览和发布&#…

Java面向对象程序设计(OOP)

1、面向对象程序设计(OOP) 1.1、面向过程&面向对象 面向过程编程&#xff08;Procedure Oriented Programming&#xff0c;POP&#xff09; 步骤清晰简单&#xff0c;第一步做什么&#xff0c;第二步做什么…&#xff08;线性思维&#xff09;是以功能&#xff08;函数&a…

C++面向对象程序设计之字符串类的相关操作

C面向对象程序设计之字符串类的相关操作 1.实验任务与要求&#xff1a; 1&#xff09;编写一个表示字符串的类String。 2&#xff09;改写默认构造函数&#xff0c;生成一个空串&#xff0c;&#xff08;不分配内存&#xff09;。 3&#xff09;添加一个带参数的构造函数&…

CH4-面向对象下 (8个案例实现)

【案例4-1】打印不同的图形 【案例介绍】 1. 案例描述 ​ 本案例要求编写一个程序&#xff0c;可以根据用户要求在控制台打印出不同的图形。例如&#xff0c;用户自定义半径的圆形和用户自定义边长的正方形。 2. 运行结果 【案例目标】 学会“抽象类实现不同图形的打印程序…

22、Java面向对象——String类

目录 课前先导 一、String类 1、string类 2、字符串的特点 3、String类中的构造方法 4、String类对象的特点 5、字符串的比较 6、获取字符串中的字符 7、获取字符串的长度 二、字符串对象的练习 1、遍历字符串 2、统计字符串中的字符 3、拼接字符串 4、字符串反…

Java实验四 深入面向对象

实验四 深入面向对象 一、实验目的与要求 1、深刻理解面向对象的三大特征&#xff1b; 2、熟练掌握关键super、final的含义及用法&#xff1b; 3、理解什么是抽象类、抽象方法&#xff0c;以及两者间的关系&#xff1b; 4、深刻理解接口的概念、作用&#xff0c;以及与抽…

java面向对象编程实例讲解_Java面向对象编程实例详解

Java是一种面向对象的语言&#xff0c;是实现面向对象编程的强大工具。但如何在编程中实际运用并发挥其最大效能呢&#xff1f;本文通过一个实际Java程序的开发过程&#xff0c;详细说明了如何使用面向对象实现Java编程。 我们要实现的Java应用程序是&#xff1a;当用户输入一个…

高端百度地图开发2:自定义水滴头像(鼠标事件、API封装对接)

高端百度地图开发系列 高端百度地图开发1&#xff1a;自定义水滴头像&#xff08;自定义标注覆盖物、Overlay覆盖类&#xff09; 自定义水滴头像之鼠标事件、API封装对接 高端百度地图开发系列一、添加自定义覆盖物的方法二、对接API数据1.获取API数据(模拟)2.遍历数据3.添加自…

2023年中国智慧公安行业发展现况及发展趋势分析:数据化建设的覆盖范围不断扩大[图]

智慧公安基于互联网、物联网、云计算、智能引擎、视频技术、数据挖掘、知识管理为技术支撑&#xff0c;公安信息化为核心&#xff0c;通过互联互通、物联化、智能方式促进公安系统各功能模块的高度集成、协同作战实现警务信息化“强度整合、高度共享、深度应用”警察发展的新概…

写一个简单炫酷的app程序的打开动画

app也是有颜值&#xff0c;动画就是一种化妆术&#xff0c;他让你的app更加炫酷&#xff0c;首先给你看下图 首先呢&#xff0c;先普及下总体的框架知识&#xff0c;有三种动画 (1)Drawable Animation&#xff1a;逐帧动画&#xff0c;就像电影一样&#xff0c;一帧一帧&am…

安卓开机动画的制作

开机动画的存储位置&#xff1a; system/media/bootanimation.zip。 bootanimation.zip的文件结构&#xff1a;包含一个desc.txt和N个文件夹&#xff08;一般两个&#xff09;。desc.txt是用来指导如何执行动画页面。文件夹里存放要播放的照片&#xff08;支持png和jpg格式&am…

安卓基础动画

在开发的过程中&#xff0c;动画可以实现很好的效果&#xff0c;比如对于图片的旋转&#xff0c;电子罗盘的都可以利用动画来时实现。但是对于动画不太熟悉&#xff0c;经常想用却不会用&#xff0c;特地写这篇博客&#xff0c;记录一下对于动画的学习。 主要学习帧动画和Objec…

安卓动画:

Android的三种动画&#xff0c;即&#xff1a; •View Animation&#xff08;视图动画&#xff09; •Drawable Animation&#xff08;帧动画&#xff09; •Property Animation&#xff08;属性动画&#xff09; Drawable Animation&#xff08;帧动画&#xff09;&#xff1…

安卓手机开机动画制作原理教程

先说开机动画实现原理&#xff1a; Android的动画是由一系列的连续PNG图片作为帧组成的动画形式。 不是合成为一张GIF图片&#xff0c;而是一个文件包&#xff0c;将各帧PNG图片以压缩方式保存。 这个保存的文件名就是bootanimation.zip&#xff0c;这个文件是zip压缩文件&a…