Callable<Response> myTask = () -> {
return queryService.queryGraph(inputInfo);
};
我正在创建一个新的可调用线程并使用此语法,但收到一条消息"语句 lambda 可以替换为表达式 lambda"。同样在Intellij中,编辑器中有一个小标志,上面写着"java.util.concurrent.Callable"中的覆盖方法。
如何摆脱这两个消息?
您会收到此警告,因为您可以通过删除 lamda 来减少 lamda{}
retrun
它仍然可以完成相同的工作。用:
Callable<Response> myTask = () -> queryService.queryGraph(inputInfo);
而不是:
Callable<Response> myTask = () -> {
return queryService.queryGraph(inputInfo);
};
语法很好。我认为这是警告您不要引入不必要的括号的智能:
Callable<Response> myTask = () -> queryService.queryGraph(inputInfo);
因为您可以折叠单个语句 lambda 正文。
提示:在Intellij中,您可以使用Alt + Enter
来查看IDE的正确建议