Hallo,
ich bin zwar noch relativ neu in Java, habe aber schon Programmierkenntnisse in anderen Sprachen, habe ich mich deshalb entschlossen es nicht in der Anfängersektion zu schreiben.
Ich habe hier eine Klasse "Items" und eine Unterklasse von Items namens "Sammelbares".
Desweiteren habe ich die Klasse "Inventar"
Das Inventar enthält eine Arrayliste vom Typ Items. Diese Liste möchte ich nun durchgehen (davon allerdings nur alle Collectables) und dann das gefundene Sammelbares übergeben.
Vom Prinzip her gar nicht so schwer. pName ist ein Parameter vom Typ Zeichenkette also String.
Das Problem ist, ich spreche hiermit ja nur Objekte vom Typ Items an. Ich müsste also in der Schleife noch eine Schleife machen, was erst überprüft ob das Item (Superklasse) vom Typ Sammelbares (Unterklasse) ist und dann nicht das Object Items sondern das Object Sammelbares zurückgeben.
Ich habe gelesen, dass man nicht "downcasten" darf. Jetzt stellt sich mir die Frage wie man das, außer alles umschreiben (statt Itemsarray nen Sammelbaresarray etc.) lösen könnte.
ich bin zwar noch relativ neu in Java, habe aber schon Programmierkenntnisse in anderen Sprachen, habe ich mich deshalb entschlossen es nicht in der Anfängersektion zu schreiben.
Ich habe hier eine Klasse "Items" und eine Unterklasse von Items namens "Sammelbares".
Desweiteren habe ich die Klasse "Inventar"
Das Inventar enthält eine Arrayliste vom Typ Items. Diese Liste möchte ich nun durchgehen (davon allerdings nur alle Collectables) und dann das gefundene Sammelbares übergeben.
Vom Prinzip her gar nicht so schwer. pName ist ein Parameter vom Typ Zeichenkette also String.
Java:
for(Items tempItem : itemList)
{
if(tempItem.getName().equals(pName))
{
return tempItem
}
}
Das Problem ist, ich spreche hiermit ja nur Objekte vom Typ Items an. Ich müsste also in der Schleife noch eine Schleife machen, was erst überprüft ob das Item (Superklasse) vom Typ Sammelbares (Unterklasse) ist und dann nicht das Object Items sondern das Object Sammelbares zurückgeben.
Ich habe gelesen, dass man nicht "downcasten" darf. Jetzt stellt sich mir die Frage wie man das, außer alles umschreiben (statt Itemsarray nen Sammelbaresarray etc.) lösen könnte.
Zuletzt bearbeitet: