默认情况下,Data注解生成的set方法没有返回值的。
使用Accessors注解其实就是指定set和get方法的生成方式
1、@Accessors(chain=true)
set方法返回对象,并且可以进行链式调用
@Data
@Accessors(chain = true)
public class User {
private String id;
private String Name;
private String password;
public static void main(String[] args) {
User user = new User();
User sjg = user.setName("sjg").setId("1");
System.out.println(sjg.getName());
}
}
2、@Accessors(fluent = true)
也可以链式访问,只是get和set方法不需要加set和get
@Data
@Accessors(fluent = true)
public class User {
private String id;
private String Name;
private String password;
public static void main(String[] args) {
User user = new User();
User sjg = user.Name("sjg").id("1");
System.out.println(sjg.id());
}
}
3、@Accessors(prefix = “f”)
忽略指定前缀,并且不能链式调用
@Data
@Accessors(prefix = "giegie")
public class User {
private String id;
private String giegieName;
private String giegiePassword;//属性首字母需要大写
public static void main(String[] args) {
User user = new User();
//user.setId("1"); //由于没有前缀,所以没有生成setter和getter
user.setName("sjg");
user.setPassword("123");
//System.out.println(user.getId());//没有get方法
System.out.println(user.getName());
}
}