[英]No instance(s) of type variable(s) T exist so that List<T> conforms to Integer
在以下代码中:
return new HashSet<>(namedParameterJdbcTemplate.query(
SOME_SQL_QUERY_STRING,
parametersMap,
(resultSet, rowNum) -> resultSet.getBigDecimal("GETID")
));
我在(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
。 有人可以帮助我,告诉我为什么会这样吗?
基本问题是推断出(查询)方法的不同(不需要的)重载版本(基于代码),并且作为第三参数给出的lambda(Function)不适合此版本的“查询”。
解决此问题的方法是通过提供类型参数来“强制”您想要的查询函数:
return new HashSet<>(namedParameterJdbcTemplate.<BigDecimal>query( ...
在方法调用中添加显式强制转换
在我的情况下,我有
<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)
但它失败并给了我这个错误,所以我通过添加强制转换来克服这个错误
x = (LinkedHashMap<String, String>) xmlRegestryFile.getMap("my/path", String.class)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.