【Lombok】Lombok注解@Accessors用法

@Accessors

Accessor的中文含义是存取器,@Accessors用于配置getter和setter方法的生成结果,下面介绍三个属性:

1.chain

链式访问,该设置chain=true,生成setter方法返回的是对象,代替了默认的返回void。

@Data
@Accessors(chain = true)
public class User {
          
   
    private Long id;
    private String name;
    
    // 生成的setter方法如下,方法体略
    public User setId(Long id) {
          
   }
    public User setName(String name) {
          
   }
}

//使用
public static void main(String[] args) {
          
   
    //开起chain=true后可以使用链式的set
    User user=new User().setAge(31).setName("xhf");//返回对象
    System.out.println(user);
}

2.fluent

与chain=true类似,区别在于getter和setter不带set和get前缀(都是基础属性名),且setter方法返回当前对象。

@Data
@Accessors(fluent = true)
public class User {
          
   
    private Long id;
    private String name;
    
    // 生成的getter和setter方法如下,方法体略
    public Long id() {
          
   }
    public User id(Long id) {
          
   }
    public String name() {
          
   }
    public User name(String name) {
          
   }
}

//使用
public static void main(String[] args) {
          
   
    //fluent=true开启后默认chain=true,故这里也可以使用链式set
    User user=new User().age(31).name("pollyduan");//不需要写set
    System.out.println(user);
 }

3.prefix

prefix的中文含义是前缀,用于生成getter和setter方法的字段名会忽视指定前缀(遵守驼峰命名)。如下

@Data
@Accessors(prefix = "p")
class User {
          
   
	private Long pId;
	private String pName;
	
	// 生成的getter和setter方法如下,方法体略
	public Long getId() {
          
   }
	public void setId(Long id) {
          
   }
	public String getName() {
          
   }
	public void setName(String name) {
          
   }
}
经验分享 程序员 微信小程序 职场和发展