Java к сожалению, не поддерживает необязательные параметры. Одним из решений этого может быть использование шаблона Builder. Вы создаете отдельный класс UserBuilder
, который принимает только необходимые аргументы в своем конструкторе. Другие аргументы передаются через множество функций. Это также позволяет вам задавать некоторые параметры по умолчанию. Когда все параметры установлены, вы звоните UserBuilder.getUser()
и ваш объект User
создается для вас. Как правило, вы также убедитесь, что конструктор User
недоступен в других местах.
class User{
String name, email, bio, address, phoneNumber;
int age;
User(String name, String email, int age, String bio, String address, String phoneNumber){
this.name = name;
this.email = email;
this.age = age;
this.bio = bio;
this.address = address;
this.phoneNumber = phoneNumber;
}
}
class UserBuilder{
String name, email, bio, address, phoneNumber;
int age;
public UserBuilder(String name, String email){
this.name = name;
this.email = email;
}
public void setBio(String bio) {
this.bio = bio;
}
public void setAddress(String address) {
this.address = address;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public void setAge(int age) {
this.age = age;
}
public User getUser(){
return new User(name, email,age,bio,address,phoneNumber);
}
}
Например, именно так вы бы создали объект User с классом построителя, если бы вы только хотели задать имя , возраст и адрес электронной почты:
UserBuilder builder = new UserBuilder(name,email);
builder.setAge(38);
builder.getUser();