简介
布尔值函数
观察其源码
要素察觉
- 返回值是
boolean
- 有抽象方法
test
- 还有与或非(
and、negate、or
)的默认方法方法,暗示可以两个Predicate对象组合使用 - 如果理解BiFunction,理解Predicate易如反掌
测试
1 | java复制代码public class PredicateTest { |
解释
- 一定要时刻记住Lambda表达式含义,即实现接口中的一个抽象方法,最终还是要使用
InterFaceClass.method
- 参数和返回值一个都少不了
小结
Lambda表达式作用
传递行为,而不仅仅是值
提升抽象层次
1
2
3
4java复制代码public void printByCondition(List<Integer> list, Predicate<Integer> predicate){
//l表示list中的某一个元素 //某个元素满足某种条件就输出
list.forEach( l -> { if (predicate.test(l)) System.out.print(l+" "); });
}单看这个方法只知道满足某个条件就输出,但具体是什么条件并不知道,所以说提升了抽象层次
API重用性更好
更加灵活
- 同一个方法,可以随意的用lambda表达式替换和现实,所以重用性和灵活性更高
本文转载自: 掘金