我有以下代码;
private List<MyCustomClassVO> copyMyCustomClassList(List<MyCustomClass> fromList) {
for (MyCustomClass myCustomClassObj : fromList) {
}
}
现在我收到错误
错误:java.lang.Object;无法转换为MyCustomClass
这是针对声明for (MyCustomClass myCustomClassObj : fromList)
我刚刚调试并检查了fromList
。它具有MyCustomClass
中定义的所有变量集。但在调试中,它会将fromList
类型显示为Vector
,列表中的每个成员都显示为Object[]
类型。
如何解决问题?
答案 0 :(得分:1)
您的方法可能会被称为这样的。
List objectsList = new ArrayList();
objectsList.add(new Object());
objectsList.add(new Object());
objectsList.add(new Object());
List<MyCustomClassVO> voList = copyMyCustomClassList(objectsList);
您需要确保传递给方法的列表包含MyCustomClassVO
类型的元素或其子类。
答案 1 :(得分:0)
fromList
在运行时肯定似乎是List<Object>
。由于泛型被删除,List<Object>
会被fromList
分配给List<MyCustomClass>
而没有任何问题。但代码在 for-each 循环失败,其中Object
被强制转换为MyCustomClass
您可以做的最好的事情是检查fromList
的填充方式
答案 2 :(得分:0)
尝试将Object类型的objectDataList转换为MyCustomClass的List,如下所示。
ArrayList<MyCustomClass> mylist = (ArrayList<MyCustomClass>) (Object) objectDataList;
for (MyCustomClass myCustomClassObj : mylist) {
System.out.println("myCustomClassObj : " + myCustomClassObj);
}