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