@Accessors
Accessor的中文含义是存取器,@Accessors用于配置getter和setter方法的生成结果,下面介绍三个属性
fluent
fluent的中文含义是流畅的,设置为true,则getter和setter方法的方法名都是基础属性名,且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) {}
*/
}
这样我们在实际开发中代码就可以这样写了。
user.id(1L).name("name").sex("F");不需要写上面setName,setId,而是直接name(xx),sex(x)注意返回的还是User类型
chain
chain的中文含义是链式的,设置为true,则setter方法返回当前对象。如下
@Data
@Accessors(chain = true)
public class User {
private Long id;
private String name;
//chain = true类似于下面代码,方法体略
/*
public User setId(Long id) {}
public User setName(String name) {}
*/
}
我们在数据代码的时候就可以这样:user.setId(1L).setName("xx").setSex("F");则个注解方式在我们实际开发中是中用的是最多的。
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) {}
*/
}
比如pId字段,当我们配置prefix=p,那么生成的get和set方法就是不是setPId这种而是setId