Angenommen, wir haben eine übergeordnete Schnittstelle mit der Funktion compare(). AngenommenJava-Polymorphie: Wie kann ich Eingabeparameter für Typumwandlung vermeiden?
public interface Parent {
public int compare(Parent otherParent);
}
, dass Kinder Child1, Child2, Child3 implementieren diese Schnittstelle Eltern
public class Child1 implements Parent {
@Override
public int compare(Parent other) {
Child1 otherChild = (Child1)other;
}
}
Auch ich bin mit Generika <T extends Parent>
überall sonst im Code. Also muss ich zwei Objekte vom Typ T aus anderen Teilen des Codes vergleichen.
Ich verstehe, dass dies ein schlechter Entwurf ist, da ich das Elternobjekt in compare() -Funktion typecasting bin und ich nicht einmal weiß, ob die Eingabe vom Typ Child1 ist.
Wie kann ich diesen Typ Casting vermeiden, während Generika verwenden?
ich glaube, ich dann Typ-Druckguss verwendet werden müssen. Vielen Dank! –