[英]Iambda expression compilation error
I am using search of ConcurrentHashMap like this: 我正在使用像这样的ConcurrentHashMap搜索:
map.search(1, (k, v) -> {
return v.size() > 10 ? k : null;
});
But when I remove braces it gives me compilation error: 但是,当我删除括号时,会出现编译错误:
map.search(1, (k, v) ->
return v.size() > 10 ? return k : null;
);
I want to remove braces since it is single statement in lambda expression. 我想删除括号,因为它是lambda表达式中的单个语句。
Update : corrected typo 更新:错别字
As there are 2 return statements, you can either have the braces as you posted above: 由于有2条return语句,因此您可以使用上面发布的括号:
map.search(1, (k, v) -> {
return v.size() > 10 ? return k : null;
});
Or you need to remove the other return: 或者您需要删除其他退货:
map.search(1, (k, v) -> {
return v.size() > 10 ? k : null;
});
For further knowledge, you can visit the following link: 要了解更多信息,可以访问以下链接:
https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax
A return statement is not an expression , its a statement. return语句不是表达式,而是语句。 In lambda expression you must enclose statement in {} braces. 在lambda表达式中,必须将语句括在{}中。 For further details you can study here : https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax 有关更多详细信息,您可以在这里学习: https : //docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.