以下代码中出现错误:
Class ABC{
public <T extends Object> void process(Entity entity){
List<T> list = entity.getList();
Iterator<T> iterator = list.iterator();
while(iterator.hasNext()){
T currentItem = iterator.next();
processCurrentItem();
}
}
}
执行iterator.next()时发生错误: java.util.LinkedHashMap无法转换为对象
我的问题是特定于我的用例的问题,还是我不了解如何利用哈希图并将其转换为我选择的对象 ?
答案 0 :(得分:0)
问题(如注释中所阐明的)是存在一个导入的名为Object
的类,而不是默认的(java.lang.Object
)。因此,T extends Object
被解释为“扩展该自定义Object
类的类”,而java.util.LinkedHashMap
则不这样做。
解决方案是,如果您打算使用默认的java.lang.Object
,则删除导入。如果确实需要自定义Object
类,则可以将<T extends Object>
更改为<T extends java.lang.Object>
,也可以将<T>
更改为extends java.lang.Object
,因为默认是{1>}。