Java中lambda表达式的目标类型是什么?

功能接口lambda表达式已经调用了被称为目标类型lambda表达式。这意味着,如果为某个“ X”接口调用了lambda表达式,则“ X”是该lambda表达式的目标类型。因此,我们得出结论,lambda表达式只能在Java编译器可以确定Target Type的情况下使用。

在下面的示例中,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