@Accessors注解解释

@Accessors用于改变@Data生成的getter和setter方法的生成结果 fluent getter和setter方法的方法名直接使用属性名,且

@Accessors用于改变@Data生成的getter和setter方法的生成结果

fluent

getter和setter方法的方法名直接使用属性名,且set方法可以返回当前对象

@Data
@Accessors(fluent = true)
public class User {private Long id;private String name;//带上注解后生成的getter和setter方法如下,方法体省略不写了public Long id() {}	//驼峰是getIdpublic User id(Long id) {}	//原来的setIdpublic String name() {}	//原来的getNamepublic User name(String name) {}//是原来的setName
}

调用时:
User user = new User()
user.id(); /相当于user.getId();
User user = user.name(“1”) //返回当前对象

chain,方法还是小驼峰,set方法返回值改变

只影响set,方法会返回当前对象。
get的方法不变,且get和set还是原来的小驼峰

@Data
@Accessors(chain = true)
public class User {private Long id;private String name;// 生成的setter方法如下,方法体略public User setId(Long id) {}public User setName(String name) {}
}

prefix,方法还是小驼峰,set和get在忽略指定前缀后命名

用于生成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) {}
}