一.导读
在一些开源项目中你有可能会遇到别人的代码中用了@Accessors注解,本篇文章就带你分析下关于@Accessor的使用
二.案例演示
(一).引入pom依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
</dependency>
(二).案例
1.fluent
说明:fluent为一个布尔值,如果为true生成的set/get方法则没有set/get前缀,默认为false
(1).fluent = true
1).Java源文件编写(AccessorsDemo.java)
@Accessors(fluent = true)
@Data
public class AccessorsDemo {
private String xiangQuBaUser;
private String xiangQuBaPassword;
}
2).Java编译后文件(AccessorsDemo.class)
public class AccessorsDemo {
private String xiangQuBaUser;
private String xiangQuBaPassword;
public AccessorsDemo() {
}
public String xiangQuBaUser() {
return this.xiangQuBaUser;
}
public String xiangQuBaPassword() {
return this.xiangQuBaPassword;
}
public AccessorsDemo xiangQuBaUser(String xiangQuBaUser) {
this.xiangQuBaUser = xiangQuBaUser;
return this;
}
public AccessorsDemo iangQuBaPassword(String xiangQuBaPassword) {
this.xiangQuBaPassword = xiangQuBaPassword;
return this;
}
}
(2).fluent = false
1).Java源文件编写(AccessorsDemo.java)
@Accessors(fluent = false)
@Data
public class AccessorsDemo {
private String xiangQuBaUser;
private String xiangQuBaPassword;
}
2).Java编译后文件(AccessorsDemo.class)
public class AccessorsDemo {
private String xiangQuBaUser;
private String xiangQuBaPassword;
public AccessorsDemo() {
}
public String getxiangQuBaUser() {
return this.xiangQuBaUser;
}
public String getxiangQuBaPassword() {
return this.xiangQuBaPassword;
}
public void setxiangQuBaUser(String xiangQuBaUser) {
this.xiangQuBaUser = xiangQuBaUser;
}
public void setxiangQuBaPassword(String xiangQuBaPassword) {
this.xiangQuBaPassword = xiangQuBaPassword;
}
}
2.chain
说明:chain为一个布尔值,如果为true生成的set方法返回this,为false生成的set方法是void类型。默认为false,chain默认则为true
(1).chain = false
1).Java源文件编写(AccessorsDemo.java)
@Accessors(chain = false)
@Data
public class AccessorsDemo {
private String xiangQuBaUser;
private String xiangQuBaPassword;
}
2).Java编译后文件(AccessorsDemo.class)
public class AccessorsDemo {
private String xiangQuBaUser;
private String xiangQuBaPassword;
public AccessorsDemo() {
}
public String getxiangQuBaUser() {
return this.xiangQuBaUser;
}
public String getxiangQuBaPassword() {
return this.xiangQuBaPassword;
}
public void setxiangQuBaUser(String xiangQuBaUser) {
this.xiangQuBaUser = xiangQuBaUser;
}
public void setxiangQuBaPassword(String xiangQuBaPassword) {
this.xiangQuBaPassword = xiangQuBaPassword;
}
}
(2).chain = true
1).Java源文件编写(AccessorsDemo.java)
@Accessors(chain = true)
@Data
public class AccessorsDemo {
private String xiangQuBaUser;
private String xiangQuBaPassword;
}
2).Java编译后文件(AccessorsDemo.class)
public class AccessorsDemo {
private String xiangQuBaUser;
private String xiangQuBaPassword;
public AccessorsDemo() {
}
public String getxiangQuBaUser() {
return this.xiangQuBaUser;
}
public String getxiangQuBaPassword() {
return this.xiangQuBaPassword;
}
public AccessorsDemo setxiangQuBaUser(String xiangQuBaUser) {
this.xiangQuBaUser = xiangQuBaUser;
return this;
}
public AccessorsDemo setxiangQuBaPassword(String xiangQuBaPassword) {
this.xiangQuBaPassword = xiangQuBaPassword;
return this;
}
}
3.prefix
说明:prefix指定前缀的String类型,生成set/get方法时会去掉指定的前缀,要特别注意的是,指定的前缀必须指定到大写字母前一个比如变量xiangQuBa,前缀为xiang,不能是x、
xi、xia、xian
(1).Java源文件编写(AccessorsDemo.java)
@Accessors(prefix = "xiang")
@Data
public class AccessorsDemo {
private String xiangQuBaUser;
private String xiangQuBaPassword;
}
(2).Java编译后文件(AccessorsDemo.class)
public class AccessorsDemo {
private String xiangQuBaUser;
private String xiangQuBaPassword;
public AccessorsDemo() {
}
public String getQuBaUser() {
return this.xiangQuBaUser;
}
public String getQuBaPassword() {
return this.xiangQuBaPassword;
}
public void setQuBaUser(String xiangQuBaUser) {
this.xiangQuBaUser = xiangQuBaUser;
}
public void setQuBaPassword(String xiangQuBaPassword) {
this.xiangQuBaPassword = xiangQuBaPassword;
}
}
三.参考文献
官方文档:
https://projectlombok.org/features/experimental/Accessors
原文链接:关于Lombok中注解@Accessors使用说明,转载请注明来源!