我将尝试在HashMap中存储字符串到函数的映射,并且我正在努力使类型匹配正确。如何存储由泛型函数接口定义的不同类型的函数?
以下是相关代码。
以下是相关代码。
@FunctionalInterface
public interface Converter<F,T> {
T convert(F from);
}
HashMap<String, Converter<?, ?>> fooMapping= new HashMap<String, Converter<?, ?>>();
fooMapping.put("name", (someString) -> someString);
fooMapping.put("flavor", (someInt) -> someAge + 1);
最后两行代码无法编译,出现以下(显然的)错误:
-方法length()对于类型Object未定义
-运算符+对于参数类型Object、int未定义
我的问题是,当我将lambda存储在哈希映射中时,如何指定Converter的类型F和T,以便我不必从Object强制转换所有内容?
HashMap<String, Function<?, ?>> fooMapping= new HashMap<String, Function<?, ?>>();
- user2336315