Java LinkedCaseMensitive映射转换问题与Spring更高版本的HashMaps
LinkedCaseInsensitiveMap是Spring框架的一部分,它扩展了LinkedCaseInsensitiveMap 层次结构如下所示: java.lang.Object java.util.AbstractMap java.util.HashMap java.util.LinkedHashMap org.springframework.util.LinkedCaseInsensitiveMap 有关信息,请参阅: 现在我有了这个代码:Java LinkedCaseMensitive映射转换问题与Spring更高版本的HashMaps,java,spring,hashmap,linkedhashmap,Java,Spring,Hashmap,Linkedhashmap,LinkedCaseInsensitiveMap是Spring框架的一部分,它扩展了LinkedCaseInsensitiveMap 层次结构如下所示: java.lang.Object java.util.AbstractMap java.util.HashMap java.util.LinkedHashMap org.springframework.util.LinkedCaseInsensitiveMap 有关信息,请参阅: 现在我有了这个代码: List<HashMap<St
List<HashMap<String, String>> l_lstResult = (List<HashMap<String, String>>)service.fetchRowwiseMultipleRecords(p_iQueryName, l_hmParams, userDetails);
l_lstCityTownList = new ArrayList<String>(l_lstResult.size());
for (int i = 0; i < l_lstResult.size(); i++) {
HashMap<String, String> l_hmColmnData = l_lstResult.get(i);
String l_sValue = l_hmColmnData.get(p_sColumnName);
l_lstCityTownList.add(l_sValue);
}
List l_lstreult=(List)service.fetchRowwiseMultipleRecords(p_iQueryName、l_hmParams、userDetails);
l_lstCityTownList=新的ArrayList(l_lstResult.size());
对于(int i=0;i
l_lstress返回LinkedCaseInsensitiveMap,我在HashMap l_hmColmnData=l_lstress.get(i)行中得到错误强>
java.lang.ClassCastException:
无法将org.springframework.util.LinkedCaseInsensitiveMap强制转换为
java.util.HashMap
问题是我在Spring版本4.3.14.RELEASE中遇到了这个错误,而在3.2.3.RELEASE中没有错误。其中是3.2.3.版本中允许该铸件的规范
任何建议、例子都会对我有很大帮助
非常感谢 自Spring 4.3.6.RELEASE以来,LinkedCaseInsensitiveMap不再扩展LinkedHashMap和HashMap,而是只实现Map接口
当您将
service.fetchRowwiseMultipleRecords(p_iQueryName、l_hmParams、userDetails)
强制转换为List
时,您只是告诉编译器相信您。但是,当获取列表的第一个元素时,它失败了,因为它不是HashMap,而是LinkedCaseInsensitiveMap(不是扩展HashMap)
这会解决你的问题
List l_lstreult=service.fetchRowwiseMultipleRecords(p_iQueryName、l_hmParams、userDetails);
l_lstCityTownList=新的ArrayList(l_lstResult.size());
对于(int i=0;i
自Spring 4.3.6.RELEASE以来,LinkedCaseInsensitiveMap不再扩展LinkedHashMap和HashMap,而是只实现Map接口
当您将
service.fetchRowwiseMultipleRecords(p_iQueryName、l_hmParams、userDetails)
强制转换为List
时,您只是告诉编译器相信您。但是,当获取列表的第一个元素时,它失败了,因为它不是HashMap,而是LinkedCaseInsensitiveMap(不是扩展HashMap)
这会解决你的问题
List l_lstreult=service.fetchRowwiseMultipleRecords(p_iQueryName、l_hmParams、userDetails);
l_lstCityTownList=新的ArrayList(l_lstResult.size());
对于(int i=0;i
为什么需要将Llsturesult强制转换为列表
?由于LinkedCaseInsensitiveMap
实现了HashMap
,因此它提供了它的所有方法。此外,service.fetchRowwiseMultipleRecords()
返回LinkedCaseInsensitiveMap的列表,或者只返回LinkedCaseInsensitiveMap?服务。fetchRowwiseMultipleRecords()返回LinkedCaseInsensitiveMap的列表。对于产生错误的场景,它返回一个LinkedCaseInsensitiveMap。当我得到它时,代码是这样的。我想知道它在Spring 3.2.3版本中是如何工作的,而不是在4.3.14版本中。为什么需要将l_lstResult强制转换为列表
?由于LinkedCaseInsensitiveMap
实现了HashMap
,因此它提供了它的所有方法。此外,service.fetchRowwiseMultipleRecords()
返回LinkedCaseInsensitiveMap的列表,或者只返回LinkedCaseInsensitiveMap?服务。fetchRowwiseMultipleRecords()返回LinkedCaseInsensitiveMap的列表。对于产生错误的场景,它返回一个LinkedCaseInsensitiveMap。当我得到itI时,代码是这样的。我想知道它在Spring3.2.3版本中是如何工作的,而不是在4.3.14版本中,这正是我想要的。谢谢!正是我想要的。谢谢!