Eclipse和Java 8内容辅助

时间:2014-05-12 18:55:14

标签: eclipse lambda java-8

我想检查Java 8与Eclipse Luna的集成,所以我从eclipse.org下载了M7 Luna。

将JDK配置为jdk8u5后,我开始进行一些测试。

让我们说你有一个很好的Runnable,如

Runnable r = new Runnable() {
   @Override
    public void run() {
        System.out.println("foo");
    }
};

如果选择

new Runnable() {
  @Override
  public void run() {
    System.out.println("foo");
  }
}

阻止并按Ctrl-1(快速修复),你会得到将其更改为lambda的建议,结果为Runnable r = () -> System.out.println("foo");,这非常酷。

但实际上有助于创建lambda表达式更好。 例如,如果您键入Runnable r = |(使用|作为光标位置)并按ctrl + Space(内容辅助),我本来希望找到一个"从中创建一个lambda表达式显示弹出窗口中的功能界面" 选项。但没有什么新东西可用。

您知道这是否会在未来实施? 我认为它可能与模板(首选项中的Java /编辑器/模板)有关,但我实际上从未尝试过它们。

1 个答案:

答案 0 :(得分:1)

=之后提供好的提案相当棘手,因为几乎所有都可以放在作业的右侧。

即使是在等号之后也没有提出使用匿名内部类实现函数的旧方法。在建议出现之前,您必须输入四个字符new␣。四个字符正是你必须键入以创建一个lambda ()->,但是在这个地方建议创建一个lambda就不再有意义,因为你已经创建了它。

所以提出一个lambda将需要提升其优先级,而不是在等号后出现的其他提议,但它仍然会有相当有限的好处。您必须按 crtl + space ,除非您使用自动菜单弹出窗口,然后选择“创建lambda”以获取四个字符()->或类似{插入了{1}},而插入提案后可能会更改参数名称。

对于内部类,读取方法覆盖,建议参数是有意义的,因为您必须完全重复所有参数类型,但对于lambda,您可以省略所有大量的保存非常有限。

所以我不希望lambda创建的提议出现在列表中。