@Accessors用于改变@Data生成的getter和setter方法的生成结果
fluent
getter和setter方法的方法名直接使用属性名,且set方法可以返回当前对象
@Data
@Accessors(fluent = true)
public class User {
private Long id;
private String name;
//带上注解后生成的getter和setter方法如下,方法体省略不写了
public Long id() {} //驼峰是getId
public User id(Long id) {} //原来的setId
public String name() {} //原来的getName
public User name(String name) {}//是原来的setName
}
调用时:
User user = new User()
user.id(); /相当于user.getId();
User user = user.name(“1”) //返回当前对象
chain,方法还是小驼峰,set方法返回值改变
只影响set,方法会返回当前对象。
get的方法不变,且get和set还是原来的小驼峰
@Data
@Accessors(chain = true)
public class User {
private Long id;
private String name;
// 生成的setter方法如下,方法体略
public User setId(Long id) {}
public User setName(String name) {}
}
prefix,方法还是小驼峰,set和get在忽略指定前缀后命名
用于生成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) {}
}