Java 如何在返回值的方法附近的lambda表达式中添加延迟?

Java 如何在返回值的方法附近的lambda表达式中添加延迟?,java,lambda,Java,Lambda,很抱歉,也许是一个明显的问题,但我不能在lambda表达式中添加延迟。我试过: Callable<int> task = () -> {TimeUnit.SECONDS.sleep(1); concurrentHashMap.get(treeNum).getApples()}; Callable task=()->{TimeUnit.SECONDS.sleep(1);concurrentHashMap.get(treeNum.getApples()}; IDE显示“缺少返回

很抱歉,也许是一个明显的问题,但我不能在lambda表达式中添加延迟。我试过:

Callable<int> task = () -> {TimeUnit.SECONDS.sleep(1); concurrentHashMap.get(treeNum).getApples()};
Callable task=()->{TimeUnit.SECONDS.sleep(1);concurrentHashMap.get(treeNum.getApples()};
IDE显示“缺少返回语句”。
如何添加延迟?

Lambda表达式可以这样编写
p->inlineMethod()
,即仅当只有一条语句时才使用隐式return语句


否则,您必须有这样的代码块
p->{[…];returnnull;}
。在这种情况下,您必须将return语句(一个或多个)显式添加到块中。

您是否尝试过添加
return
语句?您正在调用
getApples()
,但没有对结果执行任何操作。编译器在这里给了你最强烈的提示。。。lambda表达式应该返回一个
int
,但目前没有。假设一个方法中的代码返回
int
,并且基本上是相同的错误消息-您将如何修复它?添加了,但昨天它不起作用。现在可以了哎呀。我相信昨天它会工作的,但要么你没有保存,要么是类似的错误。