@Accessors
翻译是存取器。通过该注解可以控制getter和setter方法的形式。
有个vo类
@Data
@Accessors(fluent = true)
public class SysAppPayCfgVO {
private PayTypeEnum payType;
private String pName;
private String tips;
private String remark;
}
现在是fluent 若为true,则getter和setter方法的方法名都是属性名,且setter方法返回当前对象。
@Data
@Accessors(fluent = true)
class User {
private Integer id;
private String name;
// 生成的getter和setter方法如下,方法体略
public Integer id(){}
public User id(Integer id){}
public String name(){}
public User name(String name){}
}
SysAppPayCfgVO vo = new SysAppPayCfgVO(); vo.pName("1").tips("1");vo.pName();
get只能一个个,但是set可以连续,因为他返回了当前对象。
但是这种写法很容易弄混。
如果@Accessors(chain = true)
SysAppPayCfgVO vo = new SysAppPayCfgVO(); vo.setPName("1").setTips("1"); vo.getPName();
如果设置@Accessors(prefix = "p"),会忽略有这个前缀的,我的name是pname,所以忽略了p
SysAppPayCfgVO vo = new SysAppPayCfgVO(); vo.getName(); vo.setName("1");