一个函数式接口非常有价值的属性就是他们能够用lambdas来实例化。这里有一些lambdas的例子:
左边是指定类型的逗号分割的输入列表,右边是带有return的代码块:
(int x, int y) -> { return x + y; }
左边是推导类型的逗号分割的输入列表,右边是返回值:
(x, y) -> x + y
左边是推导类型的单一参数,右边是一个返回值:
x -> x * x
左边没有输入 (官方名称: "burger arrow"),在右边返回一个值:
() -> x
左边是推导类型的单一参数,右边是没返回值的代码块(返回void):
x -> { System.out.println(x); }
静态方法引用:
String::valueOf
非静态方法引用:
Object::toString
继承的函数引用:
x::toString
构造函数引用:
ArrayList::new
你可以想出一些函数引用格式作为其他lambda格式的简写。