java - 如何使用 lombok 制作私有(private) builder() 方法

标签 java lombok

我正在使用 lombok @Builder .当我在 MyExample 类上放置 @Builder 注释时,@Builder 生成 public builder() 方法。但我想制作 private builder() 方法。不幸的是,@Builder 注释没有 access 选项。我该怎么办?

最佳答案

您可以覆盖生成的构建器方法,使其成为私有(private)方法。据我所知,这是唯一的方法:

@Builder
public static class Foo<F, T> {

    // hide lombok's builder method:
    private static FooBuilder builder() {
        return new FooBuilder();
    }

}

但是,这使您能够对构建器进行一些更高级的初始化。例如,您可以使用一些默认值初始化构建器,还可以使用用户提供的初始值启动构建器。

这是一个例子:

@Builder
public static class Car {

    // kickstart builder method available to user
    public static CarBuilder builder(String brand, String model) {
        return builder().brand(brand).model(model);
    }

    // hide lombok's own builder method and apply some defaults:
    private static CarBuilder builder() {
        return new CarBuilder().color(System.getenv("DEFAULT_CAR_COLOR"));
    }

}

关于java - 如何使用 lombok 制作私有(private) builder() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49045604/

相关文章:

java - 我可以避免 Java 中的 catch block 吗?

java - 为什么 lombok 添加 canEqual 方法

java - 使用 Javassist 动态添加 Lombok 注释

Java Lombok : Omitting one field in @AllArgsConstructor?

java - 带有泛型的 Lombok 在 Maven 中失败

java - 具有相同签名的两种方法,为什么有效

java - 在生产中运行 jetty-maven-plugin

java - Spring Data JDBC 的奇怪一对多行为

java - 通过原始音频重新创建带有和声的吉他弦

java - 在 Java 上比较日期