使用Lambda表达式,关系最紧密要数函数接口。
函数接口定义:只有一个抽象方法的接口。
函数接口作用:Lambda表达式的类型。
Lambda表达式和函数接口的关系?
Lambda表达式,实现函数接口,返回该的匿名实现类的对象。
解释如下:
BinaryOperator<Long> addExplicit = (Long x, Long y) -> x + y;
函数接口:
package java.util.function;
@FunctionalInterface
public interface BiFunction<T, U, R> {
/**
* Applies this function to the given arguments.
*
* @param t the first function argument
* @param u the second function argument
* @return the function result
*/
R apply(T t, U u);
}
BinaryOperator是BiFunction的子类,R apply(T u,U u)是函数接口中唯一的抽象方法。
1.Long x, Long y是apply方法中的形式参数;
2.x + y是applu方法中具体的实现;
案例中函数接口和Lambda表达式关系如下:
1.BinaryOperator add 函数接口类型变量
2.Long x, Long y 是函数接口中抽象方法的形式参数
3.x + y 是函数接口抽象方法的实现
所以再次说明Lambda表达式实现函数接口,返回该接口的匿名实现类的对象。