Java:如果存在可选值,则添加到 Guava ImmutableList
Java: Add to Guava ImmutableList if optional value is present
正在寻找一种理想的方式来选择性地将值添加到列表中。
最终列表必须是不可变的。
示例-
Optional<Item> optionalItem = getOptionalItemFromSomewhereElse();
List<Item> list = ImmutableList.builder()
.add(item1)
.add(item2)
.optionallyAdd(optionalItem)
.build();
我会在末尾添加可选项目,如果它存在的话:
ImmutableList.Builder<Item> builder = ImmutableList.<Item>builder()
.add(item1)
.add(item2);
optionalItem.ifPresent(builder::add);
之后,我将构建列表:
ImmutableList<Item> list = builder.build();
假设您使用的是 Guava,这是一个简单的单行代码:
List<Item> list = Stream.concat(Stream.of(item1, item2), Streams.stream(optionalItem))
.collect(ImmutableList.toImmutableList());
注意:这至少需要 Java 8 和 Guava 21。
正在寻找一种理想的方式来选择性地将值添加到列表中。 最终列表必须是不可变的。
示例-
Optional<Item> optionalItem = getOptionalItemFromSomewhereElse();
List<Item> list = ImmutableList.builder()
.add(item1)
.add(item2)
.optionallyAdd(optionalItem)
.build();
我会在末尾添加可选项目,如果它存在的话:
ImmutableList.Builder<Item> builder = ImmutableList.<Item>builder()
.add(item1)
.add(item2);
optionalItem.ifPresent(builder::add);
之后,我将构建列表:
ImmutableList<Item> list = builder.build();
假设您使用的是 Guava,这是一个简单的单行代码:
List<Item> list = Stream.concat(Stream.of(item1, item2), Streams.stream(optionalItem))
.collect(ImmutableList.toImmutableList());
注意:这至少需要 Java 8 和 Guava 21。