首页 > 解决方案 > Java 列表该条件添加可选

问题描述

是否有提供List<T>方法的库(例如 Apache、Guava)

void add(Optional<T> element)

如果元素存在,则添加元素,(并且如果是无操作!element.isPresent())?显然很容易实现,但这似乎是一件显而易见的事情,似乎有人可能已经做到了。

标签: javacollectionsjava-8optional

解决方案


而不是list.add(optio)你只需要:

optio.ifPresent(list::add);

例子 :

Optional<Integer> optio = Optional.ofNullable(Math.random() > 0.5 ? 52 : null);
List<Integer> list = new ArrayList<>();

optio.ifPresent(list::add);
System.out.println(list);                 //50% of [52], 50% of []

推荐阅读