按照 Eclipse 中的功能接口生成具有正确签名的方法

Generate Method with correct signature as expected from Functional interface in Eclipse

我经常使用Java 8 个功能接口。

特别是,我有一些方法可以使用某些签名注册函数。其签名如下:

<A extends IA, D extends IB, B extends IB> void registerRConv(Class<A> tA, Class<D> tD, Class<B> tB,
        BiFunction<A, D, B> ad2b);

旁注:如果您想知道,它是一个转换器注册表,用于注册哪些类型被转换为哪些类型,以及一个执行实际转换的函数

我经常使用这种方法,每次我发现自己在打字时

registry.registerRConv(Common.Choice.class, Choice.class, Object.class, Converter::getChoice)

其中给定的 class 都存在,但静态方法 - 示例中的 Converter::getChoice - 尚不存在。

现在,如果我在 IntelliJ IDE 中执行此操作,当我按 alt+Enter 时,我会看到一个选项,可以在当前 class 中自动创建该方法 - 具有预期的签名。

我可以让 Eclipse 这样做吗?如果是,怎么做?

这是 "quick fixes" 提供的一种更改,通过按 Ctrl+1 调用。

遗憾的是,当针对方法引用表达式报告解析错误时,不提供现有的快速修复。

我提交了 https://bugs.eclipse.org/516504 来解决这个问题。

与此同时,解决方法是:

  • 将方法引用更改为 lambda 表达式
  • 调用快速修复来创建缺少的方法
  • 调用快速辅助"Convert to method reference"(Ctrl+1也在这里)