【发布时间】:2021-03-12 08:34:35
【问题描述】:
我有一个流收集器的合并功能,并试图使其通用。由于 lambda 接受 var 作为参数类型并且结果类型是 BinaryOperator,所以我试图获得类似 BinaryOperator> 或类似的东西。
BinaryOperator<InsertYourFavouriteType> rejectNewValueAndWarn = (oldValue, newValue ) -> {
LOGGER.warn( "Old value already present in map, rejecting to collect new value" );
LOGGER.warn( "Old value:" + oldValue );
LOGGER.warn( "New value:" + newValue );
return oldValue;
};
这已经很通用了,但是我想摆脱泛型参数中的显式类型。
【问题讨论】:
-
那么
rejectNewValueAndWarn应该在允许使用类型变量键入InsertYourFavouriteType的上下文(泛型类或泛型方法)中声明。也许这是一个 XY 问题,请说明您要使用rejectNewValueAndWarn做什么。 -
@Lino 哦,我明白了。 OP 正在尝试将其用作
collect的组合器参数。
标签: java generics lambda type-inference