介绍
Lombok是一个Java库,可以通过注解简化Java代码。Lombok可以自动生成getter、setter、构造函数、equals、hashCode、toString等方法,使用Lombok可以使Java代码更加简洁、易读、易维护。Lombok还提供了其他一些有用的注解,如@Data、@Builder、@Slf4j等,可以进一步简化Java代码。而且是开源的,可以在GitHub上找到它的源代码和文档。
引入依赖
java
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
<version>1.18.24</version>
</dependency>
常用注解
@Getter/@Setter
java
作用:自动生成getter/setter方法
参数:
- value:指定生成的getter/setter方法的访问级别,默认为public
- onMethod:指定注解在哪个方法上生成getter/setter方法,默认为注解所在的字段上
@ToString
java
作用:自动生成toString方法
参数:
- includeFieldNames:是否在toString方法中包含字段名,默认为false
- exclude:指定不包含在toString方法中的字段
- of:指定只包含哪些字段在toString方法中
@EqualsAndHashCode
java
作用:自动生成equals和hashCode方法
参数:
- callSuper:是否调用父类的equals和hashCode方法,默认为false
- exclude:指定不包含在equals和hashCode方法中的字段
- of:指定只包含哪些字段在equals和hashCode方法中
@NoArgsConstructor/@AllArgsConstructor
java
作用:自动生成无参/全参构造方法
参数:
- access:指定构造方法的访问级别,默认为public
- force:是否强制生成构造方法,即使类中已经存在构造方法,默认为false
@Data
java
作用:自动生成getter/setter、toString、equals和hashCode方法
@Builder
java
作用:生成Builder模式的代码
参数:
- access:指定Builder类的访问级别,默认为public
- builderClassName:指定生成的Builder类的名称,默认为类名后加"Builder"
- builderMethodName:指定生成的Builder类的方法名,默认为"builder"
- toBuilder:是否生成toBuilder方法,默认为false
@Slf4j
java
作用:自动生成日志对象
@Cleanup
java
作用:自动关闭资源
@SneakyThrows
java
作用:自动抛出异常