lombok简介

一、安装

1. IntelliJ IDEA->preference->plugins->Browse repositories->search and install,重启

2. 依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.20</version>
    <scope>provided</scope>
</dependency>

二、注解

@Data: 相当于@Getter@Setter@RequiredArgsConstructor@ToString@EqualsAndHashCode这五个注解的集合

@EqualsAndHashCode:会生成equals()和hashCode()方法,且不会使用父类的属性

@NonNull, @CleanUp, @AllArgsConstructor

三、原理:

1. 对注解的解析有两种:编译时解析,运行时解析

2. 运行时解析,使用反射,@Retention必须设置为RUNTIME

3. lombok使用的是编译时解析,javac在编译源代码时,会调用实现了插件API的程序,属于对编译器的增强

四、lombok引起的问题:自动生成的equals()方法,只比较子类,而不比较父类的字段

参考:

https://www.cnblogs.com/heyonggang/p/8638374.html

https://www.cnblogs.com/wuyuegb2312/p/9750462.html

原文地址:https://www.cnblogs.com/june0816/p/5775752.html