官网地址:
https://projectlombok.org/
Project Lombok是一个Java库,可以自动插入到您的编辑器中并进行构建的工具,为您的Java增添便利。
你再也不用写一个个的 getter、setter 或 equals 等方法了,只需要一个注释,你的类就有了一个功能齐全的生成器、自动化你的日志记录变量等等。
1. 配置
首先配置IntelliJ IDEA:
然后在配置Maven
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
2. 使用
import lombok.Data;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
/**
* Lombok测试
*
* @author Jack魏
* @since 2022-08-21
*/
@Data
class LombokTest {
private String name;
private Integer age;
@Test
void testGetter() {
LombokTest test = new LombokTest();
Integer age = test.getAge();
Assertions.assertNull(age, " expected: null ");
}
@Test
void testSetter() {
LombokTest test = new LombokTest();
test.setAge(18);
Integer age = test.getAge();
Assertions.assertNotNull(age, " expected: not null ");
}
}
可以看到没有getter、setter也是可以使用的。
3. 常用注解
注解 | 作用 |
---|---|
@NonNull | 如果对象是null抛出空指针异常 |
@Cleanup | 自动清理资源 |
@Setter | 自动生成setter方法 |
@Getter | 自动生成getter方法 |
@ToString | 自动生成toString方法 |
@EqualsAndHashCode | 自动生成equals方法和hashCode方法 |
@RequiredArgsConstructor | 生成final字段的构造器,并判断是否不能为空的值 |
@AllArgsConstructor | 生成所有字段的构造器,并判断是否不能为空的值 |
@NoArgsConstructor | 生成一个空的构造器 |
@Data | @Getter,@Setter,@ToString,@EqualsAndHashCode和@RequiredArgsConstructor |
@Value | final @ToString @EqualsAndHashCode @AllArgsConstructor @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) @Getter 不可修改 |