问题描述:如何在Java中使用buildFor和2个构造函数?
buildFor是一个辅助方法,用于创建实例。在Java中可以使用Builder的设计模式来实现buildFor。这可以通过一个内部静态类来实现,该类通过在主类中设置getter和setter方法来设置构造参数。主类中可以设置多个构造函数,其中一些构造函数需要参数,其他构造函数可以使用默认值。
示例代码:
public class Person { private String name; private int age;
private Person(Builder builder) {
this.name = builder.name;
this.age = builder.age;
}
public Person() {
// default constructor
}
public Person(String name) {
this.name = name;
this.age = 0;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public static class Builder {
private String name;
private int age;
public Builder name(String name) {
this.name = name;
return this;
}
public Builder age(int age) {
this.age = age;
return this;
}
public Person build() {
return new Person(this);
}
}
// getter methods
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
使用示例:
Person person1 = new Person.Builder() .name("John") .age(30) .build();
Person person2 = new Person("Alex");
Person person3 = new Person("Jane", 25);