Lombok

Lombok 简介

Lombok 是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。官方地址:https://projectlombok.org

简单地说,Lombok可以通过注解,来自动生成 gettser 、 setter 、 toString 、 equals 等方法

举个例子,看下面这个 class :

编译过后:

通过 Lombok 自动生成了 gettser 、 setter 、 toString 、 equals 等方法,非常方便,贴别是 toString 方法, debug 的时候会很方便。

下载并引用

maven 项目的话直接添加依赖

1
2
3
4
5
6
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
<scope>provided</scope>
</dependency>

不是 maven 的话下载 jar 包,https://projectlombok.org/download

安装 IDE 插件

Eclipse / MyEclipse

官方网站下载 jar 包,https://projectlombok.org/download

将 jar 包放到 Eclipse / MyEclipse 根目录,和 eclipse.ini / myeclipse.ini 同一级,打开 eclipse.ini / myeclipse.ini ,在最后输入如下内容并重启。

1
2
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar

IntelliJ IDEA

打开设置中的 Settings -> Plugins ,点击 Browse repositories ,搜索 Lombok 并安装。

注解介绍

  • @Getter / @Setter :用在属性上,再也不用自己手写 setter 和 getter 方法了,还可以指定访问范围。
  • @ToString :用在类上,可以自动覆写 toString 方法。
  • @EqualsAndHashCode :用在类上,自动生成 equals 方法和 hashCode 方法。
  • @NoArgsConstructor , @RequiredArgsConstructor and @AllArgsConstructor :用在类上,自动生成无参构造和使用所有参数的构造函数以及把所有 @NonNull 属性作为参数的构造函数,如果指定 staticName = “of” 参数,同时还会生成一个返回类对象的静态工厂方法,比使用构造函数方便很多。
  • @Data :注解在类上,相当于同时使用了 @ToString 、 @EqualsAndHashCode 、 @Getter 、 @Setter 和 @RequiredArgsConstrutor 这些注解,对于POJO类十分有用。
  • @Log :根据不同的注解生成不同类型的log对象。
  • @Cleanup :自动管理资源,用在局部变量之前,在当前变量范围内即将执行完毕退出之前会自动清理资源,自动生成 try-finally 这样的代码来关闭流。

更多的介绍请查看 官方文档 或者 https://blog.csdn.net/v2sking/article/details/73431364

Tips

需要注意下,开发的时候,插件和 jar 包都是需要的,不然代码会标红。

maven 打包的时候,只要在 pom.xml 中引入了 Lombok ,就会自动生成相应代码,不需要 IDE 插件。