
在 Java 开发中,经常会写一些 JavaBean 需要 getter、setter 方法。纵然像 Eclipse 等能自动的生成这些方法,但是每次修改属性名时都需要重新生成一遍。
然而使用 Lombok,我们只要在类上面加上 @Getter、@Setter 注解,就自动生成了这些方法,大大提高开发效率。
Lombok 的官方地址:https://projectlombok.org/
安装
1、maven 添加依赖:
1 | <dependency> |
2、安装插件(Eclipse 为例):
在官网:https://www.projectlombok.org/,下载 Jar 包:lombok.jar
。
将其拷贝到 Eclipse 安装目录。打开 cmd,切换到 Eclipse 安装目录,执行:java -jar lombok.jar
。Lombok 会自动扫描当前电脑的 Eclipse 环境,点击“Install/Update”即可完成安装。
其安装原理就是在 eclipse 的安装目录下的 eclipse.ini 文件中添加了一行配置,如我本机的是:
1 | -javaagent:D:\eclipse-jee-mars-2-win32-x86_64\lombok.jar |
使用
Lombok 主要是靠注解起作用的,在 Java 代码中加入一些注解,编译后,Lombok 会解析注解,并编译出已经生成好的字节码文件。
具体原理可以了解 Java 的“插入式注解处理 API”。
这里只介绍几个比较常用的注解:
@Getter
使用此注解会生成对应的 getter 方法。
源码:
1 |
|
编译后:
1 | public class User { |
@Setter
使用此注解会生成对应的 setter 方法。
源码:
1 |
|
编译后:
1 | public class User { |
@ToString
使用此注解会自动重写对应的 toStirng 方法。
源码:
1 |
|
编译后:
1 | public class User { |
@Data
这个注解包含范围最广,它包含 getter、setter、NoArgsConstructor 注解,即当使用当前注解时,会自动生成包含的所有方法。
源码:
1 |
|
编译后:
1 | public class User { |
@Slf4j
在需要打印日志的类中使用,当项目中使用了 slf4j 打印日志框架时使用该注解,自动生成 log 成员变量。
源码:
1 | 4j |
编译后:
1 | public class User { |
@NonNull
对方法参数加此注解,会在方法内部判断是否为空。
源码:
1 | public class User { |
编译后:
1 | public class User { |
遇到过的一个坑
Lombok 对第二个字母就是大写的属性生成 getter、setter 方法时貌似有问题:
如:
1 |
|
编译后:
1 | private String xAxis; |
这是错误的,按照 Eclipse 生成的标准,getter 方法名应该是:getxAxis
而非:getXAxis
。
总结
使用 Lombok 需要每个开发的 IDE 都要安装 Lombok 插件,当然这只是一次性的。
Lombok 除了上面几种注解外还有其它的,可以访问官网了解更多。
而且需要注意的是开发一定要明白加了这个注解对应真正的是生成了什么代码,不要因为对工具掌握不好而产生其它问题。像我们项目要求大家只能使用 getter 和 setter 注解,从而避免其它问题。
参考文章
https://www.cnblogs.com/throwable/p/9139908.html
https://www.cnblogs.com/peida/archive/2013/04/26/3038503.html