Lombok超详解

Lombok超详解本文介绍了 Lombok 库如何通过注解简化 Java 代码 包括 Setter Getter ToString EqualsAndHas 等常见注解的使用方法 以及如何安装 Lombok 插件和在不同场景下的应用

大家好,欢迎来到IT知识分享网。

目录

一、Lombok概述

二、Lombok插件安装

三、Lombok相关注解

3.1 @Setter和@Getter 

3.2 @ToString

3.3 @EqualsAndHashCode,@NonNull

3.4 @NoArgsConstructor,@RequiredArgsConstructor,@AllArgsConstructor

3.5 @Data

3.6 @Builder

3.7 @Log

3.8 @CleanUp

3.9 @SneakyThrows


一、Lombok概述

        以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString/构造方法;打印日志;I/O流的关闭操作等等,这些代码既没有技术含量,又影响着代码的美观,Lombok应运而生。LomBok可以通过注解,帮助开发人员消除JAVA中尤其是POJO类中的冗长代码。

使用LomBok之前

Lombok超详解

使用LomBok之后

Lombok超详解

二、Lombok插件安装

如果IDEA版本在2020.3以上,不需要安装Lombok插件。如果IDEA版本在2020.3以下,需要安装Lombok插件,安装方法如下:

  1. 点击Flie->Setting->Plugins
  2. 搜索Lombok,安装

Lombok超详解

三、Lombok相关注解

普通maven项目Lombok依赖为:

SpringBoot项目Lombok的引入方式为:

3.1 @Setter和@Getter 

作用:为类中的属性提供setter/getter方法

//给类下的所有属性添加Setter/Getter @Setter @Getter public class User {   //给id属性添加Setter   @Setter   private Integer id;   //给username的setter方法设置私有权限   @Setter(AccessLevel.PRIVATE)   private String username;   //取消password的Getter方法   @Getter(AccessLevel.NONE)   private String password;   private static int age;   private final String address = null; }

看一看该类的结构:

Lombok超详解

注:

  • static修饰的变量不生成getter和setter方法
  • final修饰的变量只生成getter方法 

3.2 @ToString

Lombok超详解

经过测试确实没有显示 

Lombok超详解

3.3 @EqualsAndHashCode,@NonNull

  • 判断两个引用是否指向同一对象
  • 判断引用是否为Null
  • 判断两个对象的实际类型是否相等,此时需要调用canEqual()
  • 判断两个对象的属性是否相等
import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Setter @Getter @ToString //@EqualsAndHashCode(exclude = {"password"}) //排除password,只使用id,username对比及计算hash @EqualsAndHashCode(of = {"username"}) //只使用username对比及计算hash public class User3 { private Integer id; private String username; private String password; }

@NonNull

3.4 @NoArgsConstructor,@RequiredArgsConstructor,@AllArgsConstructor

@NoArgsConstructor

3.5 @Data

3.6 @Builder

示例代码:

// 同时提供@Setter、@Getter、@ToString、 @EqualsAndHashCode、@RequiredArgsConstructor @Data // 提供链式风格创建对象 @Builder public class User6 {   @NonNull   private Integer id;   private String username;   private String password; } // 测试 @Test public void testUser() {   User6 user6 = User6.builder()    .id(1)    .username("itbaizhan")    .password("itbaizhan")    .build(); }

3.7 @Log

注:针对不同的日志实现产品,有不同的日志注解,使用 @Log表示使用Java自带的日志功能,除了 @Log ,还可以使用@Log4j 、 @Log4j2 、 @Slf4j 等注解,来使用不同的日志产品。

3.8 @CleanUp

3.9 @SneakyThrows

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/116952.html

(0)
上一篇 2025-11-25 07:10
下一篇 2025-11-25 07:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信