是否有一个库(例如Apache,Guava),提供了一个带有方法的List<T>
void add(Optional<T> element)
如果元素存在,则添加该元素,(如果!element.isPresent()
则不执行任何操作)。显然易于实现,但似乎这么明显的事情,可能已经有人做过了。
是否有一个库(例如Apache,Guava),提供了一个带有方法的List<T>
void add(Optional<T> element)
如果元素存在,则添加该元素,(如果!element.isPresent()
则不执行任何操作)。显然易于实现,但似乎这么明显的事情,可能已经有人做过了。
你只需要使用 list.append(optio)
,而不是 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 []
CollectionUtil.add(list, optio)
更易读。+1 - Boris the Spider
Optional
,因此似乎不鼓励使用。除此之外,直接使用element.ifPresent(list::add)
可能更容易实现。 - ernest_klist.add(optio)
可以翻译为optio.ifPresent(list::add)
,意思是如果optio
存在,则将其添加到列表list
中。注意不要改变原来的意思。 - azro