Java中lambda表达式的目标类型是什么?
甲功能接口lambda表达式已经调用了被称为目标类型lambda表达式。这意味着,如果为某个“X”接口调用了lambda表达式,则“X”是该lambda表达式的目标类型。因此,我们得出结论,lambda表达式只能在Java编译器可以确定TargetType的情况下使用。
在下面的示例中,lambda表达式的目标类型为BiFunction。将自动创建一个实现功能接口的类的实例,而lambda表达式提供功能接口声明的抽象方法的实现。
示例
interface BiFunction {
R apply(K k , V v);
}
public class LambdaTypeInferenceTest {
public static void main(String[] args) {
BiFunction result = (n1, n2) -> { return n1 + n2;}; // lambda expression
Integer n1 = 10;
Integer n2 = 20;
System.out.println("The addition of n1 and n2 is: "+ result.apply(n1, n2));
}
}输出结果
The addition of n1 and n2 is: 30