Lombok

Mar 24, 2020


简介

Lombok 项目是一个 Java 库,它会自动插入编辑器和构建工具中
Lombok 提供了一组有用的注释,用来消除 Java 类中的大量样板代码,从而产生干净、简洁且易于维护的Java类

注解

官方文档见这里

  • @Cleanup 安全的调用 close() 方法
  • @Getter/@Setter 注解在类或字段,在类时为所有字段生成 Getter/@Setter 方法,在字段时只为该字段生成 Getter/@Setter 方法
  • @ToString 注解在类,添加 toString 方法
  • @EqualsAndHashCode 注解在类,生成 hashCode 和 equals 方法
  • @NoArgsConstructor 注解在类,生成无参的构造方法
  • @RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法
  • @AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法
  • @Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法

引用

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
    <scope>provided</scope>
</dependency>

示例

@Data
@AllArgsConstructor
public class Order {
    /**
     * 订单类型
     * 1. 普通订单
     * 2. 团购订单
     * 3. 促销订单
     **/
    private String type;

}

问题

  • 因为 Lombok 是在编译时生成注解对应的代码,编译前 IDE 并不知道,所以需要通过 IDE 的插件配合使用
  • 多人协作时若有人不清楚该工具、未安装插件,就会报错