Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很冗长的Java代码的eclipse插件,通过使用对应的注解,可以在编译源码的时候生成对应的方法。同时软件还是一个代码生成器,在正常情况下我们写一个Java类的时候都需要写出属性的get/set等方法,虽然现在一些IDE可以自动生成了,但是依旧会有带来麻烦的感觉,这时候我们使用它就可以大大减少这些源代码的量,使得代码整洁许多。
安装教程
1、将解压文件中的Lombok.jar放入eclipse.ini所在的文件夹目录下
2、双击运行,等几秒后弹出下面界面,选择你要安装的eclipse.exe,点击安装
3、查看eclipse.ini文件最后是否多了一行 -javaagent:lombok.jar,有,则安装成功
4、项目中导入Lombok.jar包,重启eclipse,开始使用
使用方法
使用软件项目的方法很简单,分为四个步骤:
1、在需要自动生成getter和setter方法的类上,加上@Data注解
2、在编译类路径中加入lombok.jar包
3、使用支持软件的编译工具编译源代码(关于支持软件的编译工具,见“四、支持软件的编译工具”)
4、编译得到的字节码文件中自动生成了getter和setter方法
软件原理
以Oracle的javac编译工具为例:
自从Java 6起,javac就支持“JSR 269 Pluggable Annotation Processing API”规范,只要程序实现了该API,就能在javac运行的时候得到调用。
举例来说,现在有一个实现了"JSR 269 API"的程序A,那么使用javac编译源码的时候具体流程如下:
1、javac对源代码进行分析,生成一棵抽象语法树(AST)
2、运行过程中调用实现了"JSR 269 API"的A程序
3、此时A程序就可以完成它自己的逻辑,包括修改第一步骤得到的抽象语法树(AST)
4、javac使用修改后的抽象语法树(AST)生成字节码文件
详细的流程图如下:
软件本质上就是这样的一个实现了"JSR 269 API"的程序。在使用javac的过程中,它产生作用的具体流程如下:
1、javac对源代码进行分析,生成一棵抽象语法树(AST)
2、运行过程中调用实现了"JSR 269 API"的软件程序
3、此时软件就对第一步骤得到的AST进行处理,找到@Data注解所在类对应的语法树(AST),然后修改该语法树(AST),增加getter和setter方法定义的相应树节点
4、javac使用修改后的抽象语法树(AST)生成字节码文件
常用注解
1、@Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
2、@Setter:注解在属性上;为属性提供 setting 方法
3、@Getter:注解在属性上;为属性提供 getting 方法
4、@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
5、@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
6、@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
更新日志
1、@Builder.Default允许您在使用时配置字段的默认值@Builder。
2、
JDK9现在支持编译
3、@Data和@Value产生平等,的hashCode和toString现在时尊重字段访问的配置
4、@Builder现在标记生成的构建器“设置器”,就@Deprecated好像源字段已被弃用。
5、@ConstructorProperties现在也将为私有和私有构造函数生成。
0条评论