这是个非常普通的实体类
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 一键生成。

开发技术-常用idea插件推荐,助力开发
当然还是有些麻烦的。
@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();}
}
@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("男");}
}
从代码就可以看出,链式编程代码简洁、可读性强,不过听说不好调试,第一次用,我去试试。

(图源网络,侵删)