我有一個班級Userpublic class User { private String firstName; private String lastName; private int age; public User withFirstName(String firstName) { this.firstName = firstName; return this; } public User withLastName(String lastName) { this.lastName = lastName; return this; } public User withAge(int age) { this.age = age; return this; }}所以我可以使用它初始化它,并且在初始化后,我仍然可以通過.User user = new User().withFirstName("Tom").withAge(30);useruser.withLastName("Bob").withAge(31);如何利用龍目島來保存“withXXX”方法?@Builder不是為此用例設計的。
1 回答

陪伴而非守候
TA貢獻1757條經驗 獲得超8個贊
試試這個:
@Data
@Builder
@Accessors(fluent = true) // <— This is what you want
public class User {
private final String firstName;
private final String lastName;
private final int age;
}
然后使用:
User user = User.builder()
.firstName("foo")
.lastName("bar")
.age(22)
.build();
稍后:
user.setFirstName("baz").setAge(23); // fluent setters
注意如何通過使所有字段變得不可變(最佳實踐)。如果需要可變性,請刪除關鍵字。Userfinalfinal
添加回答
舉報
0/150
提交
取消