Lombok的使用

lombok简介

Lombok 是一个用于简化 Java Bean 开发的工具,它通过注解的方式帮助开发者减少冗长且重复的代码。Java 项目中常常需要编写一些技术含量不高但却必不可少的代码,例如 getter、setter、toString 方法,或是处理异常和 I/O 流的关闭等操作。这些代码往往既不具备实际功能,又会使代码显得臃肿且影响可读性。Lombok 通过在源代码中使用注解,能够在编译时自动生成这些必要的方法,从而大大减少手动编写这些冗余代码,提高开发效率并优化代码的简洁性。

使用步骤

1. 引入依赖
在pom文件中加入以下内容:

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

2. 安装插件

打开 File -> Settings -> Plugins。
搜索 Lombok 并安装插件。
重启 IDE。

在这里插入图片描述

常用注解

1. @Getter / @Setter

注解在属性上,为属性提供get/set 方法;注解在类上,则为类中的所有属性提供 get/set方法。
默认生成的方法是public的,如果要修改方法修饰符可以设置AccessLevel的值,例如:@Getter(access = AccessLevel.PROTECTED)

注解在类上:

@Getter
@Setter
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

在这里插入图片描述

注解在属性上:

public class User {
    @Getter
    @Setter
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

在这里插入图片描述

2. @ToString

自动生成 toString() 方法,默认情况下,它会按顺序(以逗号分隔)打印你的类名称以及每个字段。

  • 可以这样设置不包含哪些字段,例如:@ToString(exclude = “id”) / @ToString(exclude = {“id”,“name”})
  • 如果继承的有父类的话,可以设置callSuper 让其调用父类的toString()方法,例如:@ToString(callSuper = true)
  • 如果需要可以通过注释参数includeFieldNames来控制输出中是否包含的属性名称。,例如:@ToString(includeFieldNames= false)
@ToString
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

3. @Data

@Data 是一个综合性注解,包含了 @Getter、@Setter、@ToString、@EqualsAndHashCode 以及 @RequiredArgsConstructor 等功能,适用于需要快速生成完整 Java Bean 的情况。

@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

在这里插入图片描述

4. @NoArgsConstructor / @AllArgsConstructor / @RequiredArgsConstructor

  • @NoArgsConstructor:生成无参构造函数。

当类中有final字段没有被初始化时,编译器会报错,此时可用@NoArgsConstructor(force = true),然后就会为没有初始化的final字段设置默认值 0 / false / null。对于具有约束的字段(例如@NonNull字段),不会生成检查或分配,因此请注意,正确初始化这些字段之前,这些约束无效。

@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

在这里插入图片描述

  • @AllArgsConstructor:生成包含所有字段的构造函数,默认不提供无参构造。
@AllArgsConstructor
public class User {
    private Long id;
    private String name;
    private final Integer age;
    private String email;
}

在这里插入图片描述

  • @RequiredArgsConstructor:生成构造方法(可能带参数也可能不带参数),如果带参数,这参数只能是以final修饰的未经初始化的字段,或者是以@NonNull注解的未经初始化的字段
@RequiredArgsConstructor
public class User {
    @NonNull
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

在这里插入图片描述
以上就是lombok常用注解的基本使用。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值