JAVA Lambda 表达式
Lambda基础语法
() -> {}
// No parameters; result is void 无参数,无返回结果。
() -> 42
// No parameters, expression body 无参数,返回表达体。
() -> null
// No parameters, expression body 无参数,返回表达体null。
() -> { return 42; }
// No parameters, block body with return 无参数,返回块体。
() -> { System.gc(); }
// No parameters, void block body 无参数,void块体。
() -> {
if (true) return 12;
else {
int result = 15;
for (int i = 1; i < 10; i++)
result *= i;
return result;
}
}
// Complex block body with returns 具有返回的复杂块体
(int x) -> x+1
// Single declared-type parameter 单个声明类型参数
(int x) -> { return x+1; }
// Single declared-type parameter 单个声明类型参数,返回块体。
(x) -> x+1
// Single inferred-type parameter 单个推断类型参数
x -> x+1
// Parentheses optional for 单个类型参数,括号可省略。
// single inferred-type parameter 单个推断类型参数
(String s) -> s.length()
// Single declared-type parameter 单个声明类型参数
(Thread t) -> { t.start(); }
// Single declared-type parameter 单个声明类型参数
s -> s.length()
// Single inferred-type parameter 单个推断类型参数
t -> { t.start(); }
// Single inferred-type parameter 单个推断类型参数
(int x, int y) -> x+y
// Multiple declared-type parameters 多个声明类型参数
(x, y) -> x+y
// Multiple inferred-type parameters 多个推断类型参数
(x, int y) -> x+y
// Illegal: can't mix inferred and declared types 非法:不能混合推断和声明的类型
(x, final y) -> x+y
// Illegal: no modifiers with inferred types 非法:没有带推断类型的修饰符