cno*_*ova 8 java generics lambda type-inference
在以下代码中:
return new HashSet<>(namedParameterJdbcTemplate.query(
SOME_SQL_QUERY_STRING,
parametersMap,
(resultSet, rowNum) -> resultSet.getBigDecimal("GETID")
));
Run Code Online (Sandbox Code Playgroud)
我得到一条红线,(resultSet, rowNum) -> resultSet.getBigDecimal("GETID"))并出现以下错误:No instance(s) of type variable(s) T exist so that List<T> conforms to Integer.有人可以帮助我,告诉我为什么会这样吗?
基本问题是推断出“查询”方法的不同(不需要的)重载版本(基于代码),并且作为第三个参数给出的 lambda(函数)不适用于此版本的“查询”。
解决此问题的一种方法是通过提供类型参数来“强制”您想要的查询功能:
return new HashSet<>(namedParameterJdbcTemplate.<BigDecimal>query( ...
Run Code Online (Sandbox Code Playgroud)