目录
2、使用(Java+Maven+IntelliJ IDEA或者Eclipse(安装Lombok)
1、Lombok介绍
Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。
2、使用(Java+Maven+IntelliJ IDEA或者Eclipse(安装Lombok)
3、使用与不使用对比
使用
不用
减少了代码量
编译源文件,然后反编译class文件,反编译结果如下图。
说明@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,
如为final属性,则不会为该属性生成setter方法。
4、pom.xml
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<!-- provided可加可不加-->
<scope>provided</scope>
</dependency>
5、Lombok工作原理
在Lombok使用的过程中,只需要添加相应的注解,无需再为此写任何代码。
运行时解析
运行时能够解析的注解,必须将@Retention设置为RUNTIME,这样就可以通过反射拿到该注解。java.lang.reflect反射包中提供了一个接口AnnotatedElement,该接口定义了获取注解信息的几个方法,Class、Constructor、Field、Method、Package等都实现了该接口;
编译时解析
Annotation Processing Tool
Pluggable Annotation Processing API
Lombok本质上就是一个实现了“JSR 269 API”的程序
6、Lombok的优缺点
优点:
- 能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率
- 让代码变得简洁,不用过多的去关注相应的方法
- 属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等
缺点:
- 不支持多种参数构造器的重载
- 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度