public class UserDTO {
private String username;
private String email;
private int age;
private UserDTO(String username, String email, int age) {
this.username = username;
this.email = email;
this.age = age;
}
public static UserDTO create(String username, String email, int age) {
return new UserDTO(username, email, age);
}
public static UserDTOBuilder builder() {
return new UserDTOBuilder();
}
public static class UserDTOBuilder {
private String username;
private String email;
private int age;
private UserDTOBuilder() {}
public UserDTOBuilder username(String username) {
this.username = username;
return this;
}
public UserDTOBuilder email(String email) {
this.email = email;
return this;
}
public UserDTOBuilder age(int age) {
this.age = age;
return this;
}
public UserDTO build() {
return new UserDTO(username, email, age);
}
}
}
...
UserDTO user = UserDTO.builder()
.username("JohnDoe")
.email("johndoe@example.com")
.age(30)
.build();