如何更正此Callable语句?

时间:2018-05-20 08:12:56

标签: java

Callable<Response> myTask = () -> {
            return queryService.queryGraph(inputInfo);
        };

我正在创建一个新的Callable线程并使用这种语法,但收到一条消息&#34; Statement lambda可以用表达式lambda&#34;替换。同样在Intellij中,编辑器中有一个小符号,表示&#34;覆盖方法&#34; java.util.concurrent.Callable&#34;。

如何摆脱这两条消息?

2 个答案:

答案 0 :(得分:3)

您收到此警告,因为您可以通过删除{} retrun来减少lamda,但它仍会执行相同的工作。使用:

 Callable<Response> myTask = () -> queryService.queryGraph(inputInfo);

而不是:

Callable<Response> myTask = () -> {
            return queryService.queryGraph(inputInfo);
        };

答案 1 :(得分:1)

语法很好。我认为这是警告你不要引入不必要的括号:

Callable<Response> myTask = () -> queryService.queryGraph(inputInfo);

因为你可以折叠单个语句lambda body。

提示:在Intellij中,您可以使用Alt + Enter查看IDE的正确建议