【问题标题】:@Delegate and @Builder combination in lomboklombok 中的@Delegate 和@Builder 组合
【发布时间】:2019-06-15 23:23:37
【问题描述】:

我有一个来自第三方 jar 的 Acc.java 类,如下所示

@Data
public class Acc{

private String a;

private String b;

}

我在我的类中使用 Acc 类,其中 Bcc.java 作为实例变量。我想使用 lombok 在 Bcc.java 中为 Acc 实例变量创建构建器。

我尝试了以下方式

@Data
@Builder
public class Bcc{

@Delegate
private Acc acc;
}

从上面的代码中,我看到 Bcc.builder().acc() 是具有构建 Acc 对象的方法的构建器。

但我需要 Bcc.builder.a("").b("").build()。 “a”和“b”是 Acc.java 类的一部分。

有人可以帮我吗..?

【问题讨论】:

    标签: java lombok


    【解决方案1】:

    我认为 lombok 不支持开箱即用。但这里有一些代码来支持这一点。

    @Data
    @Builder
    public class Bcc {
    
        @Delegate
        private Acc acc;
        
        public static class BccBuilder {
    
            public Bcc.BccBuilder a(String a) {
                if (this.acc == null) this.acc = new Acc();
                this.acc.setA(a);
                return this;
            }
    
            public Bcc.BccBuilder b(String b) {
                if (this.acc == null) this.acc = new Acc();
                this.acc.setB(b);
                return this;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-03-02
      • 2015-12-25
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      相关资源
      最近更新 更多