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 に答える