Java Lombok

本文将介绍 Lombok,一个充满争议的代码简洁工具。

一、什么是 Lombok ?

在 Java 开发中,我们往往要写一大堆 Getter、Setter、构造器、toString()、equals() 和 hashCode() 。这些代码是十分有必要的,但它们的出现也使类显得拥挤不堪,并且这一大堆东西的编写和维护也是一个极大的问题。

虽然现代 IDE 都提供了方便的快速生成和快速修改功能,但如果对象需要频繁修改,重复的生成和修改劳动也会使人厌烦。

Lombok 是一款代码简洁工具,它能够使用注解代表前面的一大堆方法,从而减少程序员的重复劳作。

二、常用注解

  • @Getter:生成 Getter

  • @Setter:生成 Setter

  • @ToString:生成 toString()

  • @EqualsAndHashCode:生成 equals() 和 hashCode()

  • @NoArgsConstructor:生成无参构造器

  • @AllArgsConstructor:生成全参构造器

  • @RequiredArgsConstructor:生成常量和非空变量构造器

  • @Data:是 @Getter、@Setter、@ToString、@EqualsAndHashCode、@RequiredArgsConstructor 的集合

  • @NonNull:用于标记成员变量或参数为非空

  • @SneakyThrows:将异常包装为 RuntimeException,向上抛出

    主要目的是骗过编译器,否则需要处理或递归向上抛出异常

三、基本使用

1. 安装插件

以 IDEA 为例:

依次点击 File - Settings - Plugins,搜索 Lombok,安装即可。

2. 引入依赖

在 pom.xml 中添加:

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

版本信息请看:Maven Repository: org.projectlombok » lombok

3. 使用

1
2
3
4
5
6
7
8
@Data
@NoArgsConstructor
@AllArgsConstructor
public class{

// 成员变量

}

生成 Getter、Setter、toString()、equals()、hashCode()、常量和非空变量构造器、无参构造器、全参构造器

四、注意

关于 Lombok 的使用有许多争议,请酌情使用。

最大的争议是:

由于 Lombok 的实现原理,使用 Lombok 的代码需要有 Lombok 插件和依赖才能正确编译。因此,使用 Lombok 意味着强迫队友使用 Lombok。