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

 

posted @ 2019-09-01 11:44  牧云文仔  阅读(222)  评论(0编辑  收藏  举报