一、lombok的使用
1.1 lombok环境搭建
- 添加依赖
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
- idea下载lombok插件
setting–>plugins–>lombok
1.2 简介
lombok提供了一些注解,可以简化java代码的编写,比如平常使用的get,set方法,构造函数,hashcode,equals方法等,都可以使用其提供的注解,帮助我们自动生成。
二、lombok中常用的注解
2.1 @Data
@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
2.2 @Getter/@Setter
注解在属性上,可以为相应的属性自动生成Getter/Setter方法。
2.3 @NonNull
该注解用在属性或构造器上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。
2.4 @Cleanup
该注解能帮助我们自动调用close()方法,很大的简化了代码。
2.5 @EqualsAndHashCode
默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成equals和hasCode,也能通过exclude注解来排除一些属性。
2.6 @ToString
生成toString()方法。
2.7 @NoArgsConstructor
无参构造器
2.8 @RequiredArgsConstructor
会生成一个包含常量,和标识了NotNull的变量的构造方法。生成的构造方法是私有的private。
2.9 @AllArgsConstructor
全参构造器
2.10 lombok的缺点
不支持多种参数构造器的重载
2.11 参考
2.12 举例
@NoArgsConstructor
@AllArgsConstructor
public class Teacher {
@Getter @Setter
String name;
@Getter @Setter
String age;
@Getter @Setter
int id;
@Getter @Setter
User user;
}
- idea Alt + 7查看类的所有参数和方法