Java开发神器lombok
背景
我们在Java的开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器、getter、setter、equals、hashcode、toString方法,当要对某个属性进行改变时,比如命名、类型等,都需要重新去生成上面提到的这些方法。虽然这些IDE会帮我们做,但还是很麻烦,代码很臃肿,那有没有一种方式能够避免这种重复的操作那?答案是有的,现在给就大家安利一个开发神器——lombok,只需一个注解,真的只要一个注解。
简介
虽然Lombok也用到了注解,但是它并没有用到反射,而是通过一些奇淫巧技,在代码编译时期动态将注解替换为具体的代码。所以JVM实际运行的代码,和我们手动编写的包含了各种工具方法的类相同。
注解介绍
- val - 终级解决方案!简化 final 局部变量定义。
- @NonNull - 或者:了解我是怎样停止担心并爱上 NullPointerException 的。
- @Cleanup - 怎么资源管理:方便而安全地调用 close() 方法。
- @Getter / @Setter - 不再需要写像 public int getFoo() {return foo;} 这样的代码。
- @ToString - 不用启动debug就能观察字段值:让 Lombok 为你生成 toString!
- @EqualsAndHashCode - 让equal变得容易:在项目中由字段实现 hashCode 和 equals。
- @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor - 定制构造器:生成无参构造函数,对每个 final/非空 字段产生构造器,全参构造函数。
- @Data - 它合并所有注解:相当于对所有字段应用 @ToString、@EqualsAndHashCode、@Getter,并对所有非 final 字段应用 @Setter,以及应用 @RequiredArgsConstructor!
- @Value - 简单创意不可变类。
- @Builder - … 一切都很简单:简单直接地创建对象的 API!
- @SneakyThrows - 大胆的抛出以前不能轻易抛出的异常!
- @Synchronized - 正确的同步:不要暴露你的锁。
- @Getter(lazy=true) - 懒加载是种美德!
- @Log - 打印log是一种习惯!
安装
IDEA安装lombok:
File->Setting->Plugins->Browse repositories... 搜索lombok然后点击Install就OK了。
Eclipse安装lombok:
首先在官网下载插件lombok.jar,然后双击运行lombok.jar,数秒后将弹出一框,以确认eclipse的安装路径,然后点击install/update按钮,即可安装完成。重启Eclipse即可。
导包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
接下就可以尽情体验lombok带来的便利了。
所有的进步都是不稳定, 一个问题解决了又不得不面对一个新的问题。