DarthShader
Erfahrenes Mitglied
Hallo zusammen,
ich bin gerade etwas verwirrt in Bezug auf Java Generics. Ich habe hier eine Klasse mit der Methodensignatur
Nun kann ich folgendes machen:
Durch den generischen Parameter wird der Rückgabetyp von "getRegex" zu "List< JButton >", das klappt wunderbar.
Nun das Problem: Ich habe eine Klasse "ButtonGroup" mit dem Konstruktor
Was jetzt aber nicht funktioniert, ist folgendes:
Der Fehler lautet: "The constructor ButtonGroup(List<Object>) is undefined".
Im Prinzip verstehe ich den Fehler ja, denn der Rückgabetyp stimmt mit dem erwarteten Konstruktor-Parameter-Typ nicht überein. Aber im ersten Beispiel oben kann Java den Rückgabetyp ja auch dynamisch anpassen, wieso klappt das nun bei dem Konstruktor-Paramter nicht?
Gibt es eine Möglichkeit, in dem letzten Code-Beispiel einen Cast oder Ähnliches vorzunehmen, damit das der Konstruktor so akzeptiert? Oder muss ich wirklich die Methodensignaturen ändern?
Vielen Dank für Eure Hilfe!
ich bin gerade etwas verwirrt in Bezug auf Java Generics. Ich habe hier eine Klasse mit der Methodensignatur
Java:
public < T > List< T > getRegex( String pathRegex )
Nun kann ich folgendes machen:
Java:
List< JButton > buttonList = getRegex( "button.+" );
Durch den generischen Parameter wird der Rückgabetyp von "getRegex" zu "List< JButton >", das klappt wunderbar.
Nun das Problem: Ich habe eine Klasse "ButtonGroup" mit dem Konstruktor
Java:
public ButtonGroup( List< JButton > buttons )
Was jetzt aber nicht funktioniert, ist folgendes:
Java:
ButtonGroup group = new ButtonGroup( getRegex( "button.+" ) );
Der Fehler lautet: "The constructor ButtonGroup(List<Object>) is undefined".
Im Prinzip verstehe ich den Fehler ja, denn der Rückgabetyp stimmt mit dem erwarteten Konstruktor-Parameter-Typ nicht überein. Aber im ersten Beispiel oben kann Java den Rückgabetyp ja auch dynamisch anpassen, wieso klappt das nun bei dem Konstruktor-Paramter nicht?
Gibt es eine Möglichkeit, in dem letzten Code-Beispiel einen Cast oder Ähnliches vorzunehmen, damit das der Konstruktor so akzeptiert? Oder muss ich wirklich die Methodensignaturen ändern?
Vielen Dank für Eure Hilfe!