java - 自定义 Lombok 生成的 Builder

标签 java lombok

我已经定义了一个带有构建器的类,现在我想使用 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/

相关文章:

java - 在 maven 中创建并安装 de-lomboked 源 jar

java - 在 Spring 中注册 bean 的更好方法

maven - 如何使用 Lombok 消除 Mavenized 项目 Intellij 中的重复类错误

java - 我应该如何进行或不应该进行单元测试?

java - 使用 Hibernate 在 java 中创建查询 : could not resolve property

java - 持久化父实体后,HashSet.contains() 从 true 变为 false

java - Java中如何使用注解替换代码?

java - JDK-16 中 Project Lombok 的 Intellij idea 编译错误

java简单关联

java - 为什么 Maven Assembly Plugin 不将我的项目文件包含在具有依赖项的 jar 中?