【问题标题】:Lambda suggestions in Eclipse like IntelliJ doesEclipse 中的 Lambda 建议,如 IntelliJ 所做的
【发布时间】:2017-12-18 07:47:41
【问题描述】:

当你在 IntelliJ 中输入这样的代码时:

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

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

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

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

【问题讨论】:

  • 点击Runnable并点击
  • 这确实有效。但是有什么方法可以让 Eclipse 分析我的所有代码,并在所有可以使用 lambda 的地方给我警告?

标签: java eclipse intellij-idea lambda


【解决方案1】:

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

右键单击任何项​​目或 Java 文件,然后选择 Source -> Clean Up... 在出现的窗口中,选择 Use custom profile,然后单击配置...代码样式选项卡中,启用转换功能接口实例,并确保尽可能使用lambda 被选中,如下图所示:

验证并运行清理。此功能与 cmets 中 Timothy Truckle 建议的手动快速协助一起有望满足您的大部分需求。

【讨论】:

  • 感谢您的回答 Pyves。糟糕的是,我无法像 IntelliJ 那样收到任何警告。我会接受你的回答,因为它是我认为最有帮助的。
  • @Knarf 当您将此视为警告时,您应该将此清理功能配置为 保存操作,以便在保存时应用它。要仅在某些地方应用它,请使用快速帮助 (Ctrl+1) 转换为 lambda 表达式
【解决方案2】:

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

添加了新的清理功能,简化了 lambda 表达式和方法引用语法,并且仅适用于 Java 8 及更高版本。

清理:

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

如果可能,它会通过创建或方法引用替换 lambda 表达式。

要选择清理,请调用Source > Clean Up...,使用自定义配置文件,然后在Configure... 对话框中选择Code Style 选项卡上的Simplify lambda expression and method reference syntax

对于给定的代码:

你在清理后得到这个:

【讨论】:

    猜你喜欢
    • 2015-05-14
    • 2023-04-09
    • 1970-01-01
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    相关资源
    最近更新 更多