0

次のように定義されたオブジェクトを二次アクティビティに渡す必要があります。

public class Campionati extends ArrayList<Campionato> implements Serializable {

オブジェクトを含むエクストラを作成できます。セカンダリ アクティビティの onCreate() 関数では、次のコードでデータを取得します。

 Bundle b = getIntent().getExtras();
 if (b!=null) {
        Serializable s = b.getSerializable("datiSport");
        Campionati m_campionati = (Campionati)s;

b オブジェクトと s オブジェクトはどちらも適切で、s は ArrayList として型指定されます。最後のコマンドは例外を生成します。

Java.lang.ClassCastException: Java.util.ArrayList

どういう意味ですか?キャストができない理由がわかりません。

4

1 に答える 1

4

どういう意味ですか?キャストができない理由がわかりません。

これは、問題のオブジェクトがArrayListではなく、ある種の であることを意味しますCampionati

あなたの継承関係は、任意のものを -Campionatiとして扱うことができることを意味しますArrayListが、その逆は当てはまりませんCampionati問題のオブジェクトが実際にインスタンスCampionatiまたはサブクラスである場合にのみキャストできます。

于 2012-10-28T16:27:50.443 に答える