繁体   English   中英

没有类型变量T的实例存在以便List <T> 符合Integer

[英]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)

不兼容的类型:不存在类型变量 F、T 的实例,因此 java.util.Collection<t> 符合 java.util.Set <java.lang.long< div><div id="text_translate"><p> 我正在尝试将ComplexItem列表转换为它们对应的 ID Long列表。 但是即使在使用(Collection&lt;ComplexItem&gt;)对getCollection()调用进行类型转换后,也不会出现上述错误 go</p><pre> Set&lt;Long&gt; ids = Collections2.transform( getComplexItems(), new Function&lt;ComplexItem, Long&gt;() { @Override public Long apply(final ComplexItem item) { return item.id; } })); public List&lt;ComplexItem&gt; getComplexItems() {.............. }</pre> </div></java.lang.long<></t>

[英]incompatible types: no instance(s) of type variable(s) F,T exist so that java.util.Collection<T> conforms to java.util.Set<java.lang.Long

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 不存在类型变量的实例,因此T符合注释 不兼容的类型:不存在类型变量 T 的实例,因此 Matcher<t> 符合 ArgumentMatcher<long></long></t> 原因:不存在类型变量 T 的实例,因此 void 符合 T 原因:不存在类型变量 T 的实例,因此 void 符合使用 mockito 不存在类型变量T的实例,因此ID符合Comparable <? super T> Java 错误:不兼容的类型:不存在类型变量 T 的实例,因此可选<t>符合 Iterable<availablelicence></availablelicence></t> 数组排序不起作用,不存在变量 T 的实例,因此 Employee 符合 Comparable 不兼容的类型:不存在类型变量 F、T 的实例,因此 java.util.Collection<t> 符合 java.util.Set <java.lang.long< div><div id="text_translate"><p> 我正在尝试将ComplexItem列表转换为它们对应的 ID Long列表。 但是即使在使用(Collection&lt;ComplexItem&gt;)对getCollection()调用进行类型转换后,也不会出现上述错误 go</p><pre> Set&lt;Long&gt; ids = Collections2.transform( getComplexItems(), new Function&lt;ComplexItem, Long&gt;() { @Override public Long apply(final ComplexItem item) { return item.id; } })); public List&lt;ComplexItem&gt; getComplexItems() {.............. }</pre> </div></java.lang.long<></t> 不存在类型变量 V 的实例,因此 ExpectedCondition<Boolean> 符合功能<? super WebDriver, V> 不存在类型变量U的实例,因此Optional <U>符合Response</u>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM