lombok @Accessors注解
1. 前序
- Accessors翻译成中文是存储器的意思,其作用是用来配置setter和getter方法的生成结果的
- 其有三个属性fluent、chain、prefix
2. 使用
2.1 entity实体类
public class User implements Serializable {
private String userName;
private String userPass;
}
2.2 @Data默认
@Data
public class User implements Serializable {
private String userName;
private String userPass;
public String getUserName() {
return userName;
}
public String getUserPass() {
return userPass;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setUserPass(String userPass) {
this.userPass = userPass;
}
}
2.3 fluent为true
- fluent 若为true,则生成的getter和setter方法的方法名都是属性名,并且setter方法返回当前对象。
@Data
@Accessors(fluent = true)
public class User implements Serializable {
private String userName;
private String userPass;
public String userName() {
return userName;
}
public User userName(String userName) {
this.userName = userName;
return this;
}
public String userPass() {
return userPass;
}
public User userPass(String userPass) {
this.userPass = userPass;
return this;
}
}
2.4 chain为true
- 若fluent为true,则chain默认为true,当chain为true时,setter方法返回该对象
@Data
@Accessors(chain = true)
public class User implements Serializable {
private String userName;
private String userPass;
public User setUserName(String userName) {
this.userName = userName;
return this;
}
public User setUserPass(String userPass) {
this.userPass = userPass;
return this;
}
}
2.5 prefix
- 指定prefix,则setter和getter方法会忽略属性名的指定前缀,遵循驼峰法命名。
@Data
@Accessors(prefix = "p")
public class User implements Serializable {
private String pName;
private String pPass;
public String getName() {
return pName;
}
public void setName(String pName) {
this.pName = pName;
}
public String getPass() {
return pPass;
}
public void setPass(String pPass) {
this.pPass = pPass;
}
}