【问题标题】:The target type of this expression must be a functional interface in Java8此表达式的目标类型必须是 Java8 中的函数式接口
【发布时间】:2017-07-25 16:57:14
【问题描述】:

在尝试这样做时

int sum= (a, b) -> a + b;

出现以下错误:

这个表达式的目标类型必须是函数式接口

【问题讨论】:

    标签: java-8


    【解决方案1】:

    在您的情况下,它看起来像 BiFunction

    BiFunction<Integer, Integer, Integer> fun = (a, b) -> a + b;
    int sum = fun.apply(12, 13);
    

    编译器将(a, b) -&gt; a + b 视为一个lambda 表达式,必须将其分配给某种Functional Interface,但您将其分配给int

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多