Entschuldigung, ich dachte, dies sei eine Vererbungsfrage: es war die ganze Zeit eine ArrayList-Frage!Casting zwischen ArrayLists in Java
Ok, mein Problem ist spezifischer als ich dachte. Also habe ich zwei Klassenfamilien. Karten und Zonen. Zonen sind Boxen für die Karte.
Die ersten beiden Unterklassen von Zone, ZoneList und ZoneMap sind zwei verschiedene Arten zum Speichern von Karten. Weitere Unterklassen wie Hand und PokerHand haben ihre eigenen spezifischen Möglichkeiten, mit den Karten umzugehen, die sie speichern.
Wo es kompliziert wird ist, dass Card auch Unterklassen hat, wie PokerCard, und dass die Unterklassen von ZoneList und ZoneMap diese organisieren sollen.
Also in ZoneList habe ich protected ArrayList<Card> cardBox;
und in PokerHand erwartet, dass ich cardBox = new ArrayList<PokerCard>();
erklären kann, da PokerCard eine Karte ist. Der Fehler, den ich bekomme, ist, dass ich anscheinend nicht zwischen Karte und GangCard sprechen kann, wenn es zu ArrayLists kommt ... Also habe ich versucht, dies zu beheben, indem ich einfach cardBox innerhalb von PokerHand als deklarierte, aber das führte zu dem versteckten Bug up mein Programm.
SO wirklich, ist die Frage über das Gießen zwischen ArrayLists? Java sagt mir, ich kann nicht, also irgendwelche Ideen, wie ich kann?
z.
Kommen Sie, daran zu denken! Eine andere Situation, die ich denke, ist ähnlich, wenn ich getElementAt() aufrufen; und es gibt mir ein GImage zurück, das ich nicht wie ein GImage behandeln kann! Java ruft alle auf, wenn ich versuche, GImage.getName() aufzurufen; oder etwas, weil es kein Bild ist, sondern ein Objekt ...! – Ziggy