在以下代码中:
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
。有人可以帮助我,告诉我为什么会这样吗?
答案 0 :(得分:3)
根本问题是&#34;查询&#34;的不同(不需要的)重载版本。方法是推断的(基于代码)和作为第三个参数给出的lambda(Function)不适合此版本的&#34;查询&#34;。
解决这个问题的一种方法是强迫&#34;强迫&#34;通过提供类型参数来实现所需的查询功能:
return new HashSet<>(namedParameterJdbcTemplate.<BigDecimal>query( ...
答案 1 :(得分:0)
在方法调用中添加显式强制转换
在我的情况下,我有
.gitignore
我用它像
<T> Map<String, T> getMap(@NotNull String rootPath, @NotNull Class<T> type)
但它失败并给了我这个错误,所以我通过添加施法
克服了这个错误LinkedHashMap<String,String> x = xmlRegestryFile.getMap("path/to/map/of/string", String.class)