【发布时间】:2017-04-22 12:15:48
【问题描述】:
在以下代码中:
return new HashSet<>(namedParameterJdbcTemplate.query(
SOME_SQL_QUERY_STRING,
parametersMap,
(resultSet, rowNum) -> resultSet.getBigDecimal("GETID")
));
(resultSet, rowNum) -> resultSet.getBigDecimal("GETID")) 下出现红线,并出现以下错误:No instance(s) of type variable(s) T exist so that List<T> conforms to Integer。有人可以帮我解释一下为什么会这样吗?
【问题讨论】:
-
resultSet 包含什么类型?这可能不是一个数字
-
您可能需要指定“查询”函数的通用参数:(...) namedParameterJdbcTemplate.
query(... -
我的猜测是使用 lambda 会导致
query()的重载与您预期的不同 - 检查它使用的重载。 -
@recurf 结果集将包含 BigDecimal
-
@jiriTousek
public <T> List<T> query(String sql, Map<String, ?> paramMap, RowMapper<T> rowMapper) throws DataAccessException { return query(sql, new MapSqlParameterSource(paramMap), rowMapper); }这是查询方法过载。抱歉格式错误
标签: java generics lambda type-inference