一、安装
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()方法,只比较子类,而不比较父类的字段
参考: