<分区>
我在这里问了一些关于 lambdas
的问题 Java: how to resolve generic type of lambda parameter? , 但这个有点不同。
我有方法签名:
public <P> void handle(Consumer<P> consumer) {
...
}
我可以将它与 lambda
一起使用:
.<Integer>handle(p -> System.out.println(p * 2));
我能以某种方式解析实际的通用类型吗?
我的意思是我想在 handle
方法中获取 Integer.class
。
顺便说一句,我可以这样解决问题:
public <P> void handle(Class<P> pClass, Consumer<P> consumer) {...}
.handle(Integer.class, p -> System.out.println(p * 2));
但如果我们将 lambda 更改为内联实现,它看起来并不符合标准。