按照 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
也在这里)
我经常使用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
也在这里)