[英]java.lang.ClassCastException - Same Object - Two classes, why?
我正在android Studio 2.1.2中工作。
我在兩個活動之間有一個神秘的演員例外。
在第一個活動中,我有這個ArrayList:
ArrayList<riparazione> nuovo = notizia.get_Elenco();
我將arraylist(parcellable)插入捆綁包中,以便在另一個活動中發送:
Intent intent = new Intent(prenota_mostra_cellulari.this, prenota_mostra_dettagli.class);
Bundle spedizione = new Bundle();
spedizione.putString("Nome",notizia.get_Marca());
spedizione.putString("Foto",notizia.get_Foto());
spedizione.putString("Marca",notizia.get_Nome());
spedizione.putParcelableArrayList("Riparazioni",nuovo);
intent.putExtras(spedizione);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
在第二個活動中,我將其用於恢復ArrayList
ArrayList<riparazione> nuovo = new ArrayList<>();
Intent intent = getIntent();
if (null != intent) {
dati_cel = intent.getExtras();
nuovo = dati_cel.getParcelableArrayList("Riparazioni");
Log.d("Dati", String.valueOf(dati_cel.size()));
Log.d("Dati arraylist", String.valueOf(dati_cel.size()));
riparazione dads = nuovo.get(9);
}
現在符合riparazione dads = nuovo.get(9);
我收到一個Cast錯誤:
由以下原因引起:java.lang.ClassCastException:com.example.luca.ireplace.orario無法轉換為com.example.luca.ireplace.riparazione
我已經嘗試了所有方法,無論是否使用Bundle進行發送,類輸出的最終輸出為何都與此相同? 而我該如何解決?
謝謝你的幫助
該錯誤不在您發布的代碼中。 請記住,列表(通常是泛型)會遭受類型擦除。 這意味着即使您將nuovo聲明為ArrayList<riparazione>
,Java也不會在運行時檢查是否將riparazione
添加到列表中,或者在傳遞時列表是否實際上包含riparazione
。
您以某種方式將orario
插入列表中。 錯誤發生在這里:
riparazione dads = nuovo.get(9);
我們不知道nuovo
列表最初是如何構造的,但是錯誤顯然不在您發布的代碼中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.