1. 普通的赋值方式
这是个非常普通的实体类
public class User {
private String name;
private int age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
常规的赋值方式为:
public class TestL {
public static void main(String[] args) {
User user = new User();
user.setName("a");
user.setAge(10);
user.setSex("男");
}
}
当实体类的字段非常多时,就会产生大量的类似代码。
省力一点,可以使用插件 GenerateAllSetter 一键生成。
当然还是有些麻烦的。
2. 使用 @Builder
@Builder 是 lombok 的注解,需要加在实体类上
import lombok.Builder;
@Builder
public class User2 {
private String name;
private int age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
使用方式为:
public class TestL {
public static void main(String[] args) {
// PS:类名.builder().属性赋值.build()返回对象
User user = User.builder()
.name("b")
.age(12)
.sex("女")
.build();
}
}
3. 使用@Accessors
@Accessors 也是 lombok 的注解,有位大佬写的很详细:@Accessors 注解详解
该注解也是在实体类上使用:
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class User {
// PS:这时候不能使用自己生成的 getter setter,得使用 lombok 注解生成
private String name;
private int age;
private String sex;
}
使用方式为:
public class TestL {
public static void main(String[] args) {
User user = new User();
user.setName("c")
.setAge(15)
.setSex("男");
}
}
从代码就可以看出,链式编程代码简洁、可读性强,不过听说不好调试,第一次用,我去试试。
(图源网络,侵删)