Ich möchte eine Methode haben, die einen generischen Typ zurückgibt. Nehmen wir an, ich habe eine Elternklasse und 10 Kindklassen. Die Elternklasse hat keine Methode definiert und die Kindklassen haben unterschiedliche Funktionen (keine davon gemeinsam). Ich möchte ein Objekt der Kindklasse abhängig von einigen Eingaben erstellen. (Elternobjekt kann nicht erstellt werden, da ich die Methode der Klassen nicht aufrufen kann). Ich möchte also eine Funktion schreiben, die ein Objekt darin erzeugt und in der Hauptfunktion zurückgibt. Und ich möchte das T als Rückgabetyp abfangen. Wie rufe ich von main an.So rufen Sie eine Methode mit generischem Rückgabetyp in Java auf
public static <T> T fun() {
if (some condition) {
return new Class1();
} else {
return new Class2();
}
}
Wie rufe ich eine Funktion für korrekte Klasse auf?
Class xyz = fun();
Ist es nicht offensichtlich, dass Sie das tun würden, indem Sie "irgendeine Bedingung" entweder wahr oder falsch machen? – Sufian
Das ist kein gültiges Java, da der Methode ein Rückgabetyp fehlt. Es funktioniert auch nicht, weil weder 'Class1' noch' Class2' mit 'T' kompatibel sind, vorausgesetzt, Sie wollten den Typ' T' zurückgeben. Wenn der Rückgabetyp nicht "T" sein soll, was ist der Punkt von "T"? – Andreas
Aus dem Blick auf den Code dort, meine Vermutung ist, dass Sie Generika nicht vollständig verstehen und was sie tun können. Was versuchst du wirklich? – Andreas