如何在 lombok 中使用 Singular 构建部分输入集

How to construct a partial set of inputs using Singular in lombok

如果我收到 Foo foo1、Foo foo2 作为输入,我该如何使用构建器构建一个 Bar。

createBar(Foo foo) {
  Bar bar = Bar.builder.foo(foo).build();
}

如果可以将一组动态的 Foo 传递给 createBar 方法,我该如何以通用方式支持它,构造一个 List 并设置所有 Foo 是否更好

createBar(Foo foo1, Foo foo2 ...)

Class定义

@Builder
class Bar {

  @Singular
  private List<Foo> foos;

}

它并不像您希望的那样流畅,但我认为它非常紧凑:

createBar(Baz baz, Foo... foos) {
  BarBuilder builder = Bar.builder();
  Arrays.stream(foos).forEach(builder::foo);
  Bar bar = builder.baz(baz)
                   .build();
}