繁体   English   中英

Java-将List强制转换为ArrayList时发生InvocationTargetException

[英]Java - InvocationTargetException when casting List to ArrayList

说一个类定义如下:

public class foodFactory{

    protected EList<food> Basket;

    public List<food> getBasket(){
        return Basket;
    }
}

当我尝试运行以下代码时会抛出异常:

foodFactory factory = new foodFactory();

ArrayList<food> foodbasket;

foodbasket = (ArrayList<food>)getBasket();

我不明白为什么。 我没有正确投放吗?

工厂是嵌套类吗? 如果不是,您不应该这样称呼它吗?

foodFactory factory = new foodFactory();

List<food> foodbasket = (ArrayList<food>) factory.getBasket();

另外,您应该将foodbasket用作EList

好吧,只要EList是从ArrayList派生的,就必须存在ClassCastException。

List<food> foodbasket = (List<food>) factory.getBasket();

不要使用ArrayList ,使用接口List

顺便说一句,您应该使用Java命名约定

类名以大写字母开头。 贵重物品是小写的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM