@Accessors有三个属性:fluent,chain,prefix
- fluent
如果为true,存取器会省略get 和 set,并返回实体类。例:
@Data
@Accessors(fluent = true)
public class Menu {
private String id;
private String name;
private int sort;
public static void main(String[] args) {
//getters
Menu menu = new Menu().id("1").name("test").sort(0);
System.out.println(menu);
//Menu(id=1, name=test, sort=0)
//setters
String name = new Menu().name();
}
}
- chain
如果为true,setters会返回实体类。例:
@Accessors(chain = true)
//setters
new Menu().setId("1").setName("test").setSort(0);
- prefix
getter/setter 将会省去传入的前缀,只限于驼峰命名。适合给自己的实体类加统一前缀的老哥。例:
@Data
@Accessors(prefix = {"pre", "pre1"})
public class Menu {
private String preId;
private String pre1Name;
private String preName;
private int preSort;
public Menu(String preId, String pre1Name, String preName, int preSort) {
this.preId = preId;
this.pre1Name = pre1Name;
this.preName = preName;
this.preSort = preSort;
}
public static void main(String[] args) {
Menu m = new Menu();
//setters
m.setId("1");
m.setName("123");
m.setSort(0);
System.out.println(m);
//getters
m.getId();
m.getSort();
}
}
注意如果有多个字段,前缀去掉后,字段名相同,如上面的preName 和 pre1Name,setter时会报错,慎用。