Lombok的使用

Lombok是一款能够显著减少Java代码中重复getter、setter等方法编写的工作量的工具。通过在类上使用@Data注解,自动实现equals、canEqual、hashCode、toString等方法,极大地提升了开发效率。本文将详细介绍Lombok的安装、使用及常见注解。

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

LomBok介绍
在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。
官方地址:https://projectlombok.org/
gitHub地址: https://github.com/rzwitserloot/lombok
实现原理
Lombok实现了JSR 269 API规范,javac在Java6开始支持这一规范,只要程序实现了该API,就能在javac运行的时候得到调用,那么Lombok在编译时使用的就是javac,具体流程如下:
在这里插入图片描述
Idea安装插件
打开IDEA的Setting –> 选择Plugins选项 –> 选择Browse repositories –> 搜索lombok –> 点击安装 –> 安装完成重启IDEA –> 安装成功
在这里插入图片描述
Pom引入依赖

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.18</version>
    <scope>provided</scope>
</dependency>

常用注释
Lombok 注解在线帮助文档:https://projectlombok.org/features/index.html.
下面介绍几个常用的 lombok 注解:
@Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供equals、canEqual、hashCode、toString 方法
@Setter:注解在属性上;为属性提供 setting 方法
@Getter:注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NonNull:消除空指针异常
@Cleanup:释放资源
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
代码对比
@Getter和@Setter
该注解使用在类或者属性上,该注解可以使用在类上也可以使用在属性上。生成的getter遵循布尔属性的约定。例如:boolean类型的sex,getter方法为isSex而不是getSex在使用该注解时,会默认生成一个无参构造。和对应的getter和setter方法 。

public class Person {
    private String id;
    private Logger log = Logger.getLogger(Person.class);

    public Person() {
    }
    public Person(String id) {
        this.id = id;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
}

上述代码使用lombok简化之后如下

@Log4j
@NoArgsConstructor
@AllArgsConstructor
public class Person {
  @Getter @Setter 
  private String id;
}

@Data
该注解使用在类上,该注解会提供getter、setter、equals、canEqual、hashCode、toString方法。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值