lombok @Accessors用法

作者:一条会码代码的闲鱼


你也可以点击此处查看官方文档进行阅读

一、@Accessors介绍

  1. 面向getter和setter的更流畅的API
  2. @Accessors批注用于配置lombok如何生成和查找getter和setter
  3. @Accessors 在Lombok v0.11.0中作为实验功能引入

二、@Accessors的使用

@Accessors 因此有3个属性选择选择。我们选用如下代码作为演示
@Data
public class OrderQueryDTO implements Serializable {

    /**
     * id
     */
    private Integer id;
    /**
     * 订单号
     */
    private String orderNo;
    }
2.1 fluent

fluent:一个布尔值。除非指定,否则chain默认为true,且getter和setter方法的方法名都是基础属性名,且setter方法返回当前对象

若配置如下

@Data
@Accessors(fluent= true)

则代码编译为

public class OrderQueryDTO implements Serializable {
    private Integer id;
    private String orderNo;

    public OrderQueryDTO() {
    }

    public Integer id() {
        return this.id;
    }

    public String orderNo() {
        return this.orderNo;
    }

    public OrderQueryDTO id(final Integer id) {
        this.id = id;
        return this;
    }

    public OrderQueryDTO orderNo(final String orderNo) {
        this.orderNo = orderNo;
        return this;
    }
    }
2.2 chain

chain:一个布尔值。如果为true,则生成的setter this而不是返回void。默认值:false

若配置如下

@Data
@Accessors(chain = true)

则代码编译为

public class OrderQueryDTO implements Serializable {
    private Integer id;
    private String orderNo;

    public OrderQueryDTO() {
    }

    public Integer getId() {
        return this.id;
    }

    public String getOrderNo() {
        return this.orderNo;
    }

    public OrderQueryDTO setId(final Integer id) {
        this.id = id;
        return this;
    }

    public OrderQueryDTO setOrderNo(final String orderNo) {
        this.orderNo = orderNo;
        return this;
    }
}
2.3 prefix

prefix:字符串列表。如果存在,则字段用于生成getter和setter方法的字段名会忽视指定前缀(遵守驼峰命名)

若配置如下

@Data
@Accessors(prefix   = "order")

则代码编译为

public class OrderQueryDTO implements Serializable {
    private Integer id;
    private String orderNo;

    public OrderQueryDTO() {
    }

    public String getNo() {
        return this.orderNo;
    }

    public void setNo(final String orderNo) {
        this.orderNo = orderNo;
    }
    }

你可能感兴趣的:(Lombok)