本文介绍了Lambda-如果有Match则执行某项操作,否则则执行某项操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我可以使用一个lambda表达式来完成所有这些逻辑吗?
Can I do this all logic with using one lambda expression?
boolean isTrue = myList.stream().anyMatch(m -> m.getName().equals("a");
if(isTrue) { do something }
else { do something }
推荐答案
由于添加了Java 9 Optional
类
Since Java 9 Optional
class added
public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
也可以使用filter(..).findAny()
来返回Optional
,而不是返回boolean
的anyMatch(..)
.
Also instead of anyMatch(..)
which returns boolean
you can use filter(..).findAny()
which returns Optional
.
因此您可以编写类似的代码
So you can write code like
yourStream
.filter(..)
.findAny() //returns Optional
.ifPresentOrElse(
// action when value exists
value -> System.out.println("There was a value "+value),
// action when there is no value
() -> System.out.println("No value found")
);
这篇关于Lambda-如果有Match则执行某项操作,否则则执行某项操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!