Lombok - 工具简介:
Lombok是一个编译时注释预处理器,有助于在编译时注入一些代码。Lombok提供了一组在开发时处理的注释,以将代码注入到Java应用程序中,注入的代码在开发环境中立即可用。在详细介绍之前,可以去其官网看一下作者提供的视频,视频中阐述了Lombok 的简单用法。https://projectlombok.org/
Lombok - 安装过程:
基于 Maven:
示例代码:
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
</dependencies>
添加好 Maven 依赖之后,就可以在代码中使用 Lombok 的注解来简化代码了。
基于IntelliJ IDEA:
安装 Lombok IntelliJ plugin:
Jetbrains IntelliJ IDEA Editor
完全兼容 Lombok,要在 IDEA 中使用 Lombok,那就需要在IntelliJ IDEA 中安装 Lombok IntelliJ plugin
插件,以下为安装步骤:
-
Go to
File > Settings > Plugins
-
Click on
Browse repositories...
-
Search for
Lombok Plugin
-
Click on
Install plugin
-
Restart IntelliJ IDEA
具体安装过程可参考官网或者插件 Github 主页。
在IntelliJ IDEA使用Lombok:
- Go to Refactor > Lombok
- 在打开的 JavaBean 文件中按照需求添加相应的注解即可。
Lombok - 常用注解:
你如果是使用IDEA的话,在当前文件上按command+F12
,或者长按command
在左侧找到Structure
,就能够看到 lombok 为当前类生成的方法。
-
@Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
示例代码:
import lombok.Data; @Data public class Person { private String firstName; private String lastName; private String job; }
-
@Setter/@Getter:注解在属性或类上;为属性提供 Setter/Getter 方法
示例代码:
import lombok.Getter; import lombok.Setter; // 只为 firstName 生成Getter、Setter 方法 public class Person { @Getter @Setter private String firstName; private String lastName; private String job; }
import lombok.Getter; import lombok.Setter; @Getter @Setter public class Person { // 为所有字段生成Getter、Setter 方法 private String firstName; private String lastName; private String job; }
-
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
-
@Value:此注解集@equals()、@hashCode()、@toString()、@Getter()于一身。
示例代码:
import lombok.Value; import lombok.experimental.NonFinal; @Value public class Person { /** 类本身以及类中所有的字段都是private final类型的,不会生成Setter方法。 * 可以通过显式指定某个注解覆盖掉默认的属性。 * 通过@NonFinal注解修饰的字段,不是final类型的。 */ String firstName; String lastName; @NonFinal String job; }
-
@NoArgsConstructor/@AllArgsConstructor: 自动生成无参数构造函数/全参构造函数。
示例代码:
import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor public class Person { private String firstName; private String lastName; private String job; }
-
@NonNull :修饰方法、构造函数的参数或者类字段,Lombok自动生成一个非空检测语句。
示例代码:
import lombok.NonNull; public class Person{ public String Example(@NonNull String sum){ return null; } }
-
@Synchronized 将方法变成同步方法
-
@SneakyThrows:将受检异常转换为非受检异常,避免抛出或尝试语句。
lombok 项目官网上还有一些其他注解的用法,此处就不列举了,附链接:https://projectlombok.org/features/all