Lambda 表达式编译错误
Iambda expression compilation error
我正在使用这样的 ConcurrentHashMap 搜索:
map.search(1, (k, v) -> {
return v.size() > 10 ? k : null;
});
但是当我删除大括号时出现编译错误:
map.search(1, (k, v) ->
return v.size() > 10 ? return k : null;
);
我想删除大括号,因为它是 lambda 表达式中的单个语句。
更新:更正了拼写错误
由于有 2 个 return 语句,您可以使用上面发布的大括号:
map.search(1, (k, v) -> {
return v.size() > 10 ? return k : null;
});
或者您需要删除另一个 return:
map.search(1, (k, v) -> {
return v.size() > 10 ? k : null;
});
想要进一步了解,可以访问以下link:
https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax
return 语句不是表达式,而是语句。在 lambda 表达式中,您必须将语句括在 {} 大括号中。有关详细信息,您可以在此处学习:
https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax
我正在使用这样的 ConcurrentHashMap 搜索:
map.search(1, (k, v) -> {
return v.size() > 10 ? k : null;
});
但是当我删除大括号时出现编译错误:
map.search(1, (k, v) ->
return v.size() > 10 ? return k : null;
);
我想删除大括号,因为它是 lambda 表达式中的单个语句。
更新:更正了拼写错误
由于有 2 个 return 语句,您可以使用上面发布的大括号:
map.search(1, (k, v) -> {
return v.size() > 10 ? return k : null;
});
或者您需要删除另一个 return:
map.search(1, (k, v) -> {
return v.size() > 10 ? k : null;
});
想要进一步了解,可以访问以下link:
https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax
return 语句不是表达式,而是语句。在 lambda 表达式中,您必须将语句括在 {} 大括号中。有关详细信息,您可以在此处学习: https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax