说明
官网地址
全是英文看不懂?简而言之Lombok,能够在项目中使用注解,为你省去所有诸如:对象的构造函数、 equals()方法,属性的 get()/set()方法等等,这些没有技术含量的代码统统都不用写了,Lombok帮你搞定一切,全部帮你自动生成!
使用Lombok的时候,IDE可能会出现报错,格式不规范。这时候就需要安装Lombok插件。一般最新的idea都会自动或提示你安装。
那么我们开始使用!
1.pom
点击这里,在中央仓库选择自己喜欢的版本!
2.注解
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User {
private String id;
private String realName;
private String gender;
private String age;
private String email;
private String address;
private String nickName;
private String password;
private String account;
}
(1)@Data
@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
(2)@Getter/@Setter
@Getter/@Setter注解类可为可以为相应的属性自动生成Getter/Setter方法
(3)@NonNull
该注解用在属性或构造器上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。
@NotNull
private String id;
public User(@NotNull String id) {
this.id = id;
}
(4)@Cleanup
该注解能帮助我们自动调用close()方法,很大的简化了代码。
@Cleanup FileInputStream inputStream = new FileInputStream("/asas/sasa/as");
@Cleanup FileOutputStream outputStream = new FileOutputStream("/sasa/sa/ds");
(5)@EqualsAndHashCode
默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成equals和hasCode,也能通过exclude注解来排除一些属性。
(6)@ToString
使用@ToString注解,Lombok会生成一个toString()方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。通过将includeFieldNames参数设为true,就能明确的输出toString()属性
(7)@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
无参构造器、部分参数构造器、全参构造器。Lombok没法实现多种参数构造器的重载。
(8)@Builder
User user = User.builder().age("22").account("asdfasd").gender("asdfasf").build();
(9)@SneakyThrows
隐式抛出异常
@Test
@SneakyThrows
public void test() {
User user = User.builder().age("22").account("asdfasd").gender("asdfasf").build();
@Cleanup FileInputStream inputStream = new FileInputStream("/asas/sasa/as");
@Cleanup FileOutputStream outputStream = new FileOutputStream("/sasa/sa/ds");
}