Lombok用法详解

导入依赖

1
2
3
4
5
6
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>

scope=provided,说明它只在编译阶段生效,不需要打入包中。

添加IDEA对Lombok的支持

选择 File–Setting–Plugins–搜索lombok,然后安装插件重启即可

使用

*1. @Getter/@Setter *

作用在类上,生成所有成员变量的getter/setter方法 ;作用在成员变量上,生成该成员变量的getter/setter方法 ;可以设置访问权限。

1
2
3
4
5
6
7
8
9
10
11
12
13
@Getter(value = AccessLevel.PUBLIC)
@Setter(value = AccessLevel.PUBLIC)
public static class Person {
private String name;
private int age;
private boolean friendly;
}

public static class Animal {
private String name;
private int age;
@Getter @Setter private boolean funny;
}

2. @NonNull:主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。

3. @NoArgsConstructor:生成无参构造器;

4. @RequiredArgsConstructor:生成包含final和@NonNull注解的成员变量的构造器;

5. @AllArgsConstructor:生成全参构造器。

6. @Data:作用于类上,是以下注解的集合:@ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor

7. @Builder:作用于类上,将类转变为建造者模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Builder
@Data
public class UserReturnDTO {
String avatar;
byte gender;
String nickName;
String phoneNum;
String token;
}

UserReturnDTO returnDTO = UserReturnDTO.builder()
.nickName(clientUser.getNickName())
.avatar(clientUser.getAvatar())
.gender(clientUser.getGender())
.phoneNum(phone)
.token(token).build();

8. @Cleanup:自动关闭资源,针对实现了java.io.Closeable接口的对象有效,如:典型的IO流对象

@Cleanup的作用就是在当前变量不在有效范围内的时候,对其进行自动的资源回收

1
2
3
File file = new File("d:\\test.txt");
@Cleanup InputStream inputStream = new FileInputStream(file);
//这样的话就不用对流再写关闭语句了

9. @SneakyThrows:可以对受检异常进行捕捉并抛出 ,大胆抛出已检查的异常

link

-------- ♥感谢阅读♥ --------