Java-将列表强制转换为ArrayList时调用TargetException
假设一个类的定义如下:Java-将列表强制转换为ArrayList时调用TargetException,java,list,arraylist,invocationtargetexception,Java,List,Arraylist,Invocationtargetexception,假设一个类的定义如下: public class foodFactory{ protected EList<food> Basket; public List<food> getBasket(){ return Basket; } } 公共类食品工厂{ 受保护的EList篮; 公共列表getBasket(){ 回程篮; } } 当我尝试运行exeption时,下面将抛出它: foodFactory factory = new
public class foodFactory{
protected EList<food> Basket;
public List<food> getBasket(){
return Basket;
}
}
公共类食品工厂{
受保护的EList篮;
公共列表getBasket(){
回程篮;
}
}
当我尝试运行exeption时,下面将抛出它:
foodFactory factory = new foodFactory();
ArrayList<food> foodbasket;
foodbasket = (ArrayList<food>)getBasket();
foodFactory factory=newfoodfactory();
ArrayList foodbasket;
foodbasket=(ArrayList)getBasket();
我不明白为什么。我投得不好吗 工厂是嵌套类吗?如果不是,你不应该这样称呼它吗
foodFactory factory = new foodFactory();
List<food> foodbasket = (ArrayList<food>) factory.getBasket();
foodFactory factory=newfoodfactory();
List foodbasket=(ArrayList)factory.getBasket();
另一方面,您应该使用
foodbasket
作为EList那么,只要EList
不是从ArrayList
派生的,就必须存在ClassCastException
List<food> foodbasket = (List<food>) factory.getBasket();
List foodbasket=(List)factory.getBasket();
不要使用ArrayList
,使用界面列表
类名以大写字母开头。有效值是小写的。顺便说一句,我在你的问题中没有看到异常。请提供异常的完整堆栈跟踪。org.eclipse.emf.common.util.EList
可能就是这样。。。不知道为什么要使用它。如果它是一个,那么就不能将它转换为ArrayList,因为ArrayList不是EList的父类。