簡體   English   中英

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();

假設你正在使用番石榴,這里有一個簡單的單行:

List<Item> list = Stream.concat(Stream.of(item1, item2), Streams.stream(optionalItem))
        .collect(ImmutableList.toImmutableList());

注意:這至少需要Java 8和Guava 21。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM