函数式接口(@interface FunctionInterface)(Lambda的定义):
有且仅有一个抽象方法的接口,称为函数式接口。
Lambda使用时需要特别注意:必须具有上下文推断,也就是方法的参数或者局部变量类型
作为Lambda对应的接口类型,才能使用Lambda作为该接口的实例。
Lambda可以代替什么?
1. 唯一方法入参的代替
2. 唯一方法内部代码的代替
3. 唯一方法返回的代替
Lambda的常见用法?
1. Supplier:设置该类型的入参作为返回该类型的结果(注意该方法为空)
2. Consumer:设置入参的类型,消费使用该类型的参数(注意Foreach使用了该方法)
3. Predicate:进行各种判断
4. Function:进行类型转换注:and then用法 one.andThen(two).andThen(three)
方法引入::
双冒号 :: 为引用运算符,而它所在的表达式被称为方法引用。
如果Lambda要表达的函数方案已经存在于某个方法的实现中,那么则可以通过双冒号来引用该方法作为Lambda的替代者。
由于println已经被定义好,里面仅有一个参数,使用方法引入则会默认把该参数带入进去
Lambda表达式写法: s -> System.out.println(s);
方法引用写法: System.out::println
网友评论