@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) {}
}