Ich kann mich im Moment nicht umdrehen, vielleicht ist das eine dumme Frage, aber ich versuche es.Java Generic Class mit dem Generic-Type erweitert mehrere andere Klassen
Lets sagen, dass ich diese Klassen haben:
class CellType1 {
public void doSomething(){
// does something ClassType1 specific
}
}
class CellType2 {
public void doSomething(){
// does something ClassType2 specific
}
}
class CellType3 {
public void doSomething(){
// does something ClassType3 specific
}
}
Diese Klassen die gleichen Funktionen teilen, aber die Funktionen selbst anders arbeiten. Jetzt habe ich diese Klasse:
class Map<CellTypes>{
CellTypes cell;
//...
public void function(){
cell.doSomething();
}
//...
}
Diese Klasse 'Generic Type wird später eine der drei oberen Klassen sein. Und in dieser Klasse möchte ich auf die doSomething() - Funktion für dieses spezifische CellType-Objekt zugreifen. Ich habe es versucht
class Map<CellTypes extends CellType1, CellType2, CellType3> {
/*...*/
}
Aber das beschränkt mich auf die Funktion/s von CellType1. Wie kann ich die Funktionen aus verschiedenen Klassen in einer generischen Klasse verwenden? Vielleicht hat jemand eine bessere Idee als ich! Ich hoffe, das war verständlich.
Vielen Dank im Voraus.
EDIT:
Ich brauche meine Klasse Karte als eine generische Klasse haben, weil ich verschiedene Objekte von der Karte erstellen müssen und geben sie die Zelltyp-Klasse, die sie brauchen, um mit zu arbeiten.
Sie können nicht. Warum haben sie keinen gemeinsamen Supertyp? – shmosel
Können Sie nicht die drei 'CellType *' - Klassen erweitern eine gemeinsame Schnittstelle oder Klasse? – jensgram
Haben Sie alle drei Klassen erweitern oder implementieren eine Super-Klasse/Schnittstelle, dann haben Sie Ihre Karte generische sein, dass Supertype –