Lombok简述、引入、基本使用、常用注解

简介: Lombok的使用可大大提高开发效率,优化代码结构

1.Lombok简述

  一个Java类库,主要用于简化Java代码中的大量模板代码,比如:setter/getter方法、toString、流的关闭等

2.Lombok基本使用

   引入maven依赖,工具(如:idea)中需安装该插件才能便于操作

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

3.常用注解

@Getter/Setter:编译器自动生成get/set方法

@ToString:编译器自动生成toString方法 

@EqualsAndHashCode:编译器自动生成equals、hashCode、canEqual方法

@Data:组合注解(@Getter/Setter/@Getter/Setter/@Getter/Setter),译器自动生成get/set、toString、equals、       hashCode、canEqual方法

@NonNull:设置属性不为null

@NoArgsConstructor:类,无参构造

@RequiredArgsConsturctor:有参构造,针对不为空的属性

@AllArgsConstructor:有参构造,所有参数

@Builder:建造者模式

@Log:日志,无需创建直接使用log对象

@Cleanup:关闭流,无需处理IO流、数据库等关闭操作

@val:变量类型,泛型对象无需指定类型,编译器根据传入值自动编译

4.示例

@Data

类注解,使用该注解,可省略get/set方法,使代码更简洁

@data.png

@Getter/Setter,访问修饰符AccessLevel

属性注解,如果对特定属性限定访问范围等,可使用该注解

@GetterSetter.png

@ToString,包含与不包含属性限制

类注解,可限定类打印时包含与不包含某属性

@tostring.png

@NoArgsConstructor  @RequiredArgsConsturctor  @ AllArgsConstructor
类属性,此三个属性针对构造方法,限定构造方法有无参数、参数数量
@args.png

@Builder
为一个类提供建造者模式特性
@builder.png

相关文章
|
16天前
|
Arthas Java 测试技术
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
Java字节码文件、组成、详解、分析;常用工具,jclasslib插件、阿里arthas工具;如何定位线上问题;Java注解
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
|
7天前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
|
10天前
|
Java 编译器 测试技术
|
21天前
|
存储 JSON 前端开发
【Java】用@JsonFormat(pattern = “yyyy-MM-dd“)注解,出生日期竟然年轻了一天
在实际项目中,使用 `@JsonFormat(pattern = &quot;yyyy-MM-dd&quot;)` 注解导致出生日期少了一天的问题,根源在于夏令时的影响。本文详细解析了夏令时的概念、`@JsonFormat` 注解的使用方法,并提供了三种解决方案:在注解中添加 `timezone = GMT+8`、修改 JVM 参数 `-Duser.timezone=GMT+08`,以及使用 `timezone = Asia/Shanghai
16 0
【Java】用@JsonFormat(pattern = “yyyy-MM-dd“)注解,出生日期竟然年轻了一天
|
1月前
|
Java
Java系列之 IDEA 为类 和 方法设置注解模板
这篇文章介绍了如何在IntelliJ IDEA中为类和方法设置注解模板,包括类模板的创建和应用,以及两种不同的方法注解模板的创建过程和实际效果展示,旨在提高代码的可读性和维护性。
|
30天前
|
存储 缓存 Java
Java本地高性能缓存实践问题之使用@CachePut注解来更新缓存中数据的问题如何解决
Java本地高性能缓存实践问题之使用@CachePut注解来更新缓存中数据的问题如何解决
|
30天前
|
Java 编译器 开发者
【Java 第八篇章】注解
从JDK5起,Java引入注解作为元数据支持,区别于注释,注解可在编译、类加载和运行时被读取处理。注解允许开发者在不影响代码逻辑的前提下嵌入补充信息。核心概念包括`Annotation`接口、`@Target`定义适用范围如方法、字段等,`@Retention`设定生命周期,如仅存在于源码或运行时可用。Java提供了内置注解如`@Override`用于检查方法重写、`@Deprecated`标记废弃元素、`@SuppressWarnings`抑制警告。自定义注解可用于复杂场景,例如通过反射实现字段验证。
13 0
|
1月前
|
存储 缓存 Java
Java本地高性能缓存实践问题之使用@CachePut注解来更新缓存中的数据的问题如何解决
Java本地高性能缓存实践问题之使用@CachePut注解来更新缓存中的数据的问题如何解决
|
1月前
|
IDE Java 开发工具
Java 开发神器 Lombok:告别冗余,拥抱优雅!
Java 开发神器 Lombok:告别冗余,拥抱优雅!
33 0
|
1月前
|
设计模式 存储 安全
18 Java反射reflect(类加载+获取类对象+通用操作+设计模式+枚举+注解)
18 Java反射reflect(类加载+获取类对象+通用操作+设计模式+枚举+注解)
62 0