代码优化lombok

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a_short_tail_rabbit/article/details/81009756

lombok插件的安装

在开发中,对于一些类。常常需要写getter/setter方法。这些都是必须的而且是冗余的代码。先在介绍一个插件,可以让我们省去这些重复冗余方法。这个插件就是lombok。首先去下载合适的lombok的jar。
lombok的官方地址:https://projectlombok.org/
然后将该jar放在eclipse目录与eclipse里面 .ini的目录同级。
这里写图片描述
然后修改.ini配置文件,在配置文件最后一行添加-javaagent:lombok.jar。
这里写图片描述
然后在项目中导入lombok.jar包。
这里写图片描述

lombok的使用方法

可以参考官方文档
https://projectlombok.org/features/all
我经常就是主要用@Data注释在类上,如下所示,然后在就可以直接使用。

这里写图片描述
下面介绍几种常用的注解
@Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
@Getter 使用方法同上,区别在于生成的是getter方法。
@ToString 注解在类,添加toString方法。
@EqualsAndHashCode 注解在类,生成hashCode和equals方法。
@NoArgsConstructor 注解在类,生成无参的构造方法。
@RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
@AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。
@Data 注解在类,为类的所有字段注解@ToString、@EqualsAndHashCode、@Getter的便捷方法,同时为所有非final字段注解@Setter。

lombok的原理

Lombok实现了JSR 269 API规范,javac在Java6开始支持这一规范,只要程序实现了该API,就能在javac运行的时候得到调用,那么Lombok在编译时使用的就是javac,具体流程如下
这里写图片描述
首先是项目的源代码文件,在经过编译处理以后,lombok会使用自己的抽象语法树去进行注解的匹配,如果在项目中的某一个类中使用了lombok中的注解,那么注解编译器就会自动去匹配项目中的注解对应到在lombok语法树中的注解文件,并经过自动编译匹配来生成对应类中的getter或者setter方法,达到简化代码的目的。执行顺序就如上图的叠放顺序。

猜你喜欢

转载自blog.csdn.net/a_short_tail_rabbit/article/details/81009756