Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-将列表强制转换为ArrayList时调用TargetException_Java_List_Arraylist_Invocationtargetexception - Fatal编程技术网

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的父类。