Lambda 表达式和方法引用提供了在 Java 中定义函数式接口的替代方法。然而,当具有返回类型的方法引用看起来与 Consumer 接口匹配时,就会出现混乱,尽管 Consumer 的接受方法具有 void 返回类型。
正如 Brian Goetz 所解释的,这种行为是故意的。它允许开发人员以与直接调用方法相同的方式使方法适应功能接口。因此,返回值方法可以与 Consumer 接口一起使用,忽略返回值。
Lambda 表达式可以采用两种形式:
方法引用是定义函数式接口的另一种方式。但是,并非所有方法都可以用作 Consumer 的方法引用。具体来说:
唯一与值不兼容的表达式形式是 (arg) ->方法ReturningVoid(arg)。这是因为它没有返回值。
方法引用与 Consumer 的兼容性取决于返回类型以及表达式是否可以用作语句。理解这个概念有助于阐明 lambda 和方法引用如何与 Java 中的函数式接口交互。
以上是带返回类型的方法如何与 Java 的使用者接口一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!