【发布时间】:2016-11-26 04:45:23
【问题描述】:
据我所知,java lambda 表达式有 3 种。
(int x, int y) -> { return x + y; }x -> x * x( ) -> x
第三个似乎从未使用过。
您能否为这 3 个案例中的每一个都提供一个示例(案例 3 的一个额外示例会很好)来说明它们的用法?请让它们尽可能简单(最好以 list.stream().... 开头)
【问题讨论】:
-
第三个好像没用过???我只是在这里使用它:stackoverflow.com/questions/40797960/chicken-egg-lifecycle
-
供应商
sup = () -> 2; -
这些不是不同“种类”的 lambda 表达式(而且您甚至没有详尽地介绍这些选项)。第三种只是第一种的特例,其中只有零个参数。第二种是一种特殊的语法形式,如果只有一个参数并且您选择让编译器推断参数类型,您可以省略括号。您还可以选择让编译器推断所有参数类型,在这种情况下,您会得到类似
(x,y,z) -> x+y+z的信息。但它们都是相同的“种类”。
标签: java lambda java-8 java-stream