我正在使用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表达式中的单个语句。
更新:更正错误
答案 0 :(得分:1)
由于有2个返回语句,您可以使用上面发布的大括号:
map.search(1, (k, v) -> {
return v.size() > 10 ? return k : null;
});
或者你需要删除其他回报:
map.search(1, (k, v) -> {
return v.size() > 10 ? k : null;
});
如需进一步了解,请访问以下链接:
https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax
答案 1 :(得分:1)
return语句不是表达式,而是一个语句。在lambda表达式中,您必须在{}括号中包含语句。有关详细信息,请在此处学习: https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax