【笔记】 lombok 使用

记录 lombok 的使用

lombok 注解

  • @Setter
    为每个字段创建标准 setter 方法

  • @Getter
    为每个字段创建标准 getter 方法

  • @RequiredArgsConstructor
    和 @NonNull 结合,生成需要参数的构造方法
    属性 staticName:默认是空,如果设置的话,生成的构造方法为 private,然后生成静态的工厂方法包装构造方法

  • @ToString
    生成 toString 方法

  • @EqualsAndHashCode
    生成 equals 和 hashCode 方法

  • @Data
    生成 getter, toString, hashCode, equals 和构造方法, 等价于
    @Getter
    @Setter
    @RequiredArgsConstructor
    @ToString
    @EqualsAndHashCode

  • @AllArgsConstructor
    生成所有字段的构造方法

  • @NoArgsConstructor
    生成无参构造方法

  • @Accessors
    用来保存 @Setter, @Getter 的配置。
    属性 fluent: 如果是 true, 生成的 getter 和 setter 方法没有 get, set 前缀
    属性 chain:如果是 true, 生成链式调用的 setter 方法(即 setter 会返回 this)
    属性 prefix: 有这个前缀的字段才生成 getter 和 setter 方法

  • @Builder
    生成 builder 方法
    例如:

    1
    2
    3
    4
    5
    6
    7
    @Builder
    public class Student {
    private String name;
    private int age;
    }

    Student student = Student.builder().name("zs").age(24).build();
  • @Delegate
    代理,生成转发到其他 bean 的方法
    例如:生成 RestOperations 的方法并将请求转发到 restTemplate 对象实现。

    1
    2
    3
    4
    5
    @AllArgsConstructor
    public abstract class FilterRestTemplate implements RestOperations {
    @Delegate
    protected volatile RestTemplate restTemplate;
    }
  • @FieldDefaults
    设置属性的使用范围,如 private、public 等,也可以设置属性是否被 final 修饰

  • @Value
    生成不可变对象,等价于
    @Getter
    @FieldDefaults(makeFinal=true, level=AccessLevel.PRIVATE)
    @AllArgsConstructor
    @ToString
    @EqualsAndHashCode