为什么我在内部构造器类中看到的每个地方都是公共静态的?它不应该是私有静态的吗?也许我看不到任何东西,但我会说会更好。有人可以向我解释吗?
@Getter @AllArgsConstructor @ToString
public class CarDto {
private final String make;
private final int seatCount;
private final String type;
private final CarDto carDto;
public static Builder builder(){
return new Builder();
}
private static class Builder{
private String make;
private int seatCount;
private String type;
private CarDto carDto;
public Builder make(String make){
this.make = make;
return this;
}
public Builder seatCount(int seatCount){
this.seatCount = seatCount;
return this;
}
public Builder type(String type){
this.type = type;
return this;
}
public Builder carDto(CarDto carDto){
this.carDto = carDto;
return this;
}
public CarDto create(){
return new CarDto(make, seatCount,type,carDto);
}
}
}
Builder
必须是公共的,才能从其他类访问。尝试让您的构建器调用静态工厂方法CarDto.builder()
,否则,您将无法使用seatCount()
,...,create()
之类的任何构建方法。
一个私有的Builder类将毫无用处。首先,您甚至无法做到这一点:
public static Builder builder() {
return new Builder();
}
因为无法从公共方法公开私有类。