Lombok
831字约3分钟
2024-08-08
介绍
Lombok
是开源的代码生成库,是一款非常实用的小工具,我们在编辑实体类时可以通过Lombok
注解减少getter
、setter
等方法的编写,在更改实体类时只需要修改属性即可,减少了很多重复代码的编写工作。本文将介绍IntelliJ IDEA
中Lombok
插件的安装和配置以及简单的使用方法
安装
搜索Lombok

使用
安装的插件只是一个调用,就像使用maven
插件一样,本机需要安装maven
才行。我们在使用lombok
前也需要添加lombok
的依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.18.0</version>
</dependency>
创建User
实体类,并给它添加@Data
注解
import lombok.Data;
@Data
public class User {
private Long id;
private String name;
}
创建对象,通过对象我们已经可以看到已经自动生成的方法了

常用注解
@Data
注解在类上,包含了@ToString
,@EqualsAndHashCode
,@Getter
/@Setter
和@RequiredArgsConstructor
的功能,提供类所有属性的getter
和setter
方法,此外还提供了equals
、canEqual
、hashCode
、toString
方法
@Setter
注解在属性上;为属性提供setter
方法
@Getter
注解在属性上;为属性提供getter
方法
@ToString
注解在类上;生成toString()
方法,默认情况下,它会按顺序(以逗号分隔)打印你的类名称以及每个字段。可以这样设置不包含哪些字段@ToString(exclude = "id")
/@ToString(exclude = {"id","name"})
如果继承的有父类的话,可以设置callSuper
让其调用父类的toString()
方法,例如:@ToString(callSuper = true)
@EqualsAndHashCode
注解在类上;生成hashCode()
和equals()
方法,默认情况下,它将使用所有非静态,非transient
字段。但可以通过在可选的exclude
参数中来排除更多字段。或者,通过在parameter
参数中命名它们来准确指定希望使用哪些字段
@NonNull
注解在属性上;标识属性是不能为空,为空则抛出异常
@Slf4j
注解在类上;根据用户实际使用的日志框架生成log
日志对象
@Log4j
注解在类上;为类提供一个属性名为log
的log4j
日志对象
@NoArgsConstructor
注解在类上;为类提供一个无参的构造方法。当类中有final
字段没有被初始化时,编译器会报错,此时可用@NoArgsConstructor(force = true)
,然后就会为没有初始化的final
字段设置默认值0
/false
/null
。对于具有约束的字段(例如@NonNull
字段),不会生成检查或分配,因此请注意,正确初始化这些字段之前,这些约束无效
@AllArgsConstructor
注解在类上;为类提供一个全参的构造方法
默认生成的方法是public
的,如果要修改方法修饰符可以设置AccessLevel
的值,例如:@Getter(access = AccessLevel.PROTECTED)
@RequiredArgsConstructor
注解在类上;会生成构造方法(可能带参数也可能不带参数),如果带参数,这参数只能是以final
修饰的未经初始化的字段,或者是以@NonNull
注解的未经初始化的字段@RequiredArgsConstructor(staticName = "of")
会生成一个of()
的静态方法,并把构造方法设置为私有的