2017-10-17 21 views
0

私は立ち往生しています。下記のコードはSpringframework v2.5.6でうまく動作しますが、より大きなバージョンを使用している場合はそのエラーが発生します。リストからキャストできません<map <string、object >>リストに<map <string、string >>

public List<Map<String, String>> getAclUserRoles(String akoId) { 
    List<Map<String, String>> roles = null; 
    if (null == akoId || "".equals(akoId.trim())) { 
     return null; 
    } 
    Object[] params = { akoId }; 
    roles = (List<Map<String, String>>) getJdbcTemplate().queryForList(ACL_QUERY, params); 
    return roles; 
} 

私はキャストエラーを理解し、それはそれはそのバージョンの下で動作しますが、将来はない、と任意の詳細を説明しますドキュメントの何かを見つけることができませんどのように奇妙です。

+0

現在テストしているバージョンはどれですか? – dillius

答えて

0

戻り値の型がv2.5.6以上の現行リリース間で変更されたようです。

Map<String, object>covariance and contravariance work in JavaのためにMap<String, String>にキャストすることはできません。

+0

getJdbcTemplate()。queryForListを設定して文字列とオブジェクトを取得する方法はありますか?私は数年前のコードを修正して、春を標準に戻そうとしています。 – Robert4Korea

+0

このバージョンのメソッドを使用するように変更し、クラスとしてMap を指定することができます。https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/ core/JdbcTemplate.html#queryForList-java.lang.String-java.lang.Object:A-java.lang.Class- – dillius

0

私は、解決策を見つけ、この行を置き換える必要がありました:。

一覧>役割=(一覧)getJdbcTemplate()queryForList(ACL_QUERY、のparams);

関連する問題