2016-12-07 12 views
4

を整数に適合しないNo instance(s) of type variable(s) T exist so that List<T> conforms to Integer 。誰かが私を助けて、なぜこれが起こっているのか教えてもらえますか?Tが存在する型変数(S)のインスタンス(複数可)がそのリスト<T>は、次のコードで

+0

をキャスト追加することによって、このエラーをovercomed?数字でない可能性があります – recurf

+1

"query"関数の汎用パラメータを指定する必要があるかもしれません:(...)namedParameterJdbcTemplate。 query ... ... –

+0

私は、 'query()'が使用しているオーバーロードとは異なるラムダ結果を使用していると思います - 使用するオーバーロードを確認してください –

答えて

2

基本的な問題は、 "クエリ"メソッドの別の(望ましくない)オーバーロードされたバージョンが(コードに基づいて)推論され、3番目のパラメータとして与えられたラムダ(関数) 。

この問題を解決する方法は以下のようなタイプのパラメータを提供することによって、「力」あなたが望むクエリ機能を、以下のとおりです。

return new HashSet<>(namedParameterJdbcTemplate.<BigDecimal>query(... 
+8

今後参照するため、これは_タイプの証人と呼ばれています。 – Rogue

0

あなたのメソッド呼び出し

に明示的なキャストを追加私の場合、私は

<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) 

が、それは失敗したと私はそのエラーを与えたので、私はResultSetはどのようなタイプが含まれているん

x = (LinkedHashMap<String, String>) xmlRegestryFile.getMap("my/path", String.class) 
関連する問題