0

假设一个类的定义如下:

public class foodFactory{

    protected EList<food> Basket;

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

当我尝试运行它时,以下会引发异常:

foodFactory factory = new foodFactory();

ArrayList<food> foodbasket;

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

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

4

2 回答 2

0

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

foodFactory factory = new foodFactory();

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

另一方面,您应该将其foodbasket用作EList.

于 2013-08-23T19:38:00.383 回答
0

好吧,只要EList不是从 派生的ArrayList,就一定有ClassCastException。

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

不使用ArrayList,使用接口List

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

类名以大写开头。变量是小写的。

于 2013-08-23T20:13:08.080 回答