我已经定义了一个带有构建器的类,现在我想使用 Lombok 的 @Builder
注释来限制样板代码。
public class ClientApp {
private UUID clientId;
ClientApp(UUID clientId) {
this.clientId = clientId;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private UUID clientId;
public Builder clientId(String clientId) {
return clientId(UUID.fromString(clientId));
}
public Builder clientId(UUID clientId) {
this.clientId = clientId;
return this;
}
public ClientApp build() {
return new ClientApp(this.clientId);
}
}
public Builder clientId(String clientId) {
return clientId(UUID.fromString(clientId));
}
}
但是注解不会生成clientId(String)
方法,只会生成clientId(UUID)
。如何使用 Lombok 生成它?
最佳答案
好吧,lombok 不会为你生成这个,但你可以使用 @Builder
并有一个 ClientAppBuilder 类,其中包含一个方法,该方法接受一个 String 并将其路由到另一个要生成的方法,方法。可能您需要使用@Tolerate 标记您的方法,否则 Lombok 将不会生成 UUID 接受方法。
披露:我是 Lombok 开发人员。
关于java - 自定义 Lombok 生成的 Builder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33943193/