Eclipse中的Lambda建议就像IntelliJ一样

时间:2017-07-13 13:30:28

标签: java eclipse intellij-idea lambda

在IntelliJ中输入如下代码:

Runnable cronTask = new Runnable() {
   @Override
   public void run() {
      // do something
   }
};

当使用lambda表达式时,IntelliJ会自动建议这会更好。您可以选择自动转换为

Runnable cronTask = () -> {
   // do something
};

Eclipse中是否可以这样?也许有某种插件?我希望Eclipse能够告诉我lambda表达式可能是更好的解决方案。如果可能的话,还建议正确修复。

2 个答案:

答案 0 :(得分:3)

据我所知,没有办法让Eclipse显示编译器警告,其中lambda表达式是更好的选择。不过,有一个很好的功能可以处理您请求的自动转换。

右键单击任何项​​目或Java文件,然后选择 Source - >清理... 在出现的窗口中,选择使用自定义配置文件,然后单击配置... 代码样式选项卡,启用转换功能接口实例,并确保选择尽可能使用lambda ,如下面的屏幕截图所示:

Lambda conversion

验证并运行清理。此功能以及Timothy Truckle在评论中建议的手动快速帮助有望满足您的大部分需求。

答案 1 :(得分:0)

一旦您拥有“尽可能使用lambda”,就可以now (Eclipse 2020.03) clean them up

已添加新的清理操作,以简化lambda表达式和方法引用语法,并且仅在Java 8及更高版本中启用。

清理:

  • 删除单个无类型参数的括号
  • 单个表达式的返回语句和
  • 括号为一个语句。

在可能的情况下,它将lambda表达式替换为创建或方法引用。

要选择清除,请调用Configure...,使用自定义配置文件,然后在Simplify lambda expression and method reference syntax对话框中选择Code Style上的 In [18]: !cd primo-files; pwd; mpirun --hostfile /tmp/hostfile -np 2 primo primo-inputs Out[18]: /files/primo-files 标签。

对于给定的代码:

Lambda before cleanup -- https://www.eclipse.org/eclipse/news/4.15/images/lambda-expression-enhancements-before.png

您在清理后得到这个:

Lambda after cleanup -- https://www.eclipse.org/eclipse/news/4.15/images/lambda-expression-enhancements-after.png