图文详解Lombok 及其使用方式

本文详细介绍Lombok工具,一种简化Java代码的利器。通过使用注解,如@Getter、@Setter、@Data等,自动为类生成getter、setter、构造器、equals、hashCode等方法,极大提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Lombok简介:

Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。官方地址:https://projectlombok.org/,github地址:https://github.com/rzwitserloot/lombok。

二、IntelliJ IDEA 使用它的方法

1.先安装插件

在这里插入图片描述

2.然后在pom引入lombok的jar包
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <!-- 版本号,可以更改 -->
    <version>1.16.14</version>
</dependency>
3.常用有哪些注解:
  1. @Setter
  2. @Getter
  3. @Data
  4. @Log4j
  5. @AllArgsConstructor
  6. @NoArgsConstructor
  7. @EqualsAndHashCode
  8. @NonNull
  9. @ToString
  10. @RequiredArgsConstructor
  11. @Value
  12. @SneakyThrows
  13. @Synchronized
  14. @Builder

三、lombok注解介绍:

1.@Getter and @Setter:

你可以用@Getter / @Setter注释任何字段(当然也可以注释到类上的),让lombok自动生成默认的getter / setter方法。

默认生成的方法是public的,如果要修改方法修饰符可以设置AccessLevel的值,例如:@Getter(access = AccessLevel.PROTECTED)
下面是AccessLevel的部分源码:

public enum AccessLevel {
   PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE,
   /** Represents not generating anything or the complete lack of a method. */
   NONE;
}

通过源码我们可以看出,AccessLevel有六个属性值,分别是
PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE,和 NONE;
我们可以通过下面的表格理解这其中几个属性值的含义:
访问控制符 当前类 同一包内 子孙类 其它包
在这里插入图片描述

让我们看看生成的结果:

Name属性lombok帮我们生成了get,set方法,并且,我们指定了访问修饰符为PRIVATE,可以看到get set方法的权限修饰符为PRIVATE的
在这里插入图片描述

2.Data注解:

作用于类上,会帮我们生成所有属性的 get ,set 方法,和equals、canEqual、hashCode、toString 方法。

在这里插入图片描述
在这里插入图片描述

3.@Log4j

作用于类上,为类提供一个属性名为log的 Log4j对象:

在这里插入图片描述

4.AllArgsConstructor:作用在类上,为该类生成一个全参构造方法:

在这里插入图片描述

5.@NoArgsConstructor:作用在类上,为该类生成一个无参构造方法:

在这里插入图片描述

6.@EqualsAndHashCode:作用在类上,为该类生成equals,canEqual,hashCode方法:

在这里插入图片描述

7.NonNull:做用在属性上,也可以用在参数上,会对该属性或参数做非空判断,如何为空就异常:
作用在属性上:

在这里插入图片描述

作用在形参上:

在这里插入图片描述

8.@ToString

在这里插入图片描述

9.@RequiredArgsConstructor:作用在类上,使该类中所有带有 @NonNull 注解的或者带有 final 修饰的成员变量生成对应的构造方法。
final关键字效果:

在这里插入图片描述

@NonNull 注解效果:

在这里插入图片描述

10.@Value:这个注解用在类上,会生成含所有参数的构造方法,get 方法(不生成set方法),此外还会生成equals、hashCode、toString 方法。

在这里插入图片描述

11.@SneakyThrows:作用在方法上,可以将方法中的代码用 try-catch 语句包裹起来,并在 catch 中 把异常抛出,可以使用 @SneakyThrows(Exception.class) 的形式指定抛出哪种异常。

在这里插入图片描述

12.@Builder:通过@Builder注解,lombok可以方便的实现建造者模式。

在这里插入图片描述

更方便的赋值:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值