介绍Lombok 是一个 Java 库,可自动插入您的编辑器并构建工具,简化java代码。
(以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。)
实现原理JSR 269 :插件化注解处理API(Pluggable Annotation Processing API),JDK 6提供特性,能在javac编译期通过注解处理。Lombok就是一个实现了"JSR 269 API"的程序。
Lombok工作流程如下:
Lombok使用 @Data@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
(@Data集合了@EqualsAndHashCode、@Getter/@Setter@RequiredArgsConstructor、@ToString的所有特性)
@Getter/@Setter:作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。(exclude/of)
@NonNull该注解用在属性或构造器上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。
@EqualsAndHashCode默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成equals和hasCode,也能通过exclude注解来排除一些属性。
@NoArgsConstructor, @RequiredArgsConstructor @AllArgsConstructor无参构造器、部分参数构造器、全参构造器。Lombok没法实现多种参数构造器的重载。



