Datentypen Generics: Wie am besten auf Typparameter zugreifen

Hallo,
das ist wohl die Standardfrage in Sachen Generics:

Ich möchte den aktuellen Typparameter bekommen. Der Hintergrund ist der, dass ich an einer Stelle den Konstruktor BeanListHandler(Class<T> type) aus dem apache.commons.dbutils Paket aufrufe und der möchte halt den aktuellen Typparameter übergeben bekommen.
Jetzt weiß ich, dass es sich zur Laufzeit nur um Object handelt und der Typparameter gar nicht mehr zur Verfügung steht, man also auf diesem Wege das nicht herausfinden kann.
Ich behelfe mir damit, jedem Konstruktor eine Instanz des Typparameters mitzugeben, was mir recht unsauber erscheint, ich sehe aber gerade keine andere Möglichkeit.
Kennt ihr eine?
 
Ich behelfe mir damit, jedem Konstruktor eine Instanz des Typparameters mitzugeben, was mir recht unsauber erscheint, ich sehe aber gerade keine andere Möglichkeit.
Kennt ihr eine?

Die Lösung ist in Ordnung.

Du solltest aber die Typ-Parameter miteinander absichern:
Java:
method( Class<T> , T t ) {
   ...
}
 
Für einen Konstruktor-Aufruf, der nicht sicher immer die Parameter-Anzahl 0 hat,
würde ich ein Instance-Creator-Interface anbieten:

Java:
package util.lang;

/**
 * Generisches Interface für
 * Erzeugungs-Objekte von
 * Klassen, die als
 * Typ-Parameter (Generics)
 * dienen.
 * <br/>
 * Implementierungs-Klassen dieses
 * Interfaces ersetzen die
 * fehlende Möglichkeit
 * Instanzen von Typ-Parametern
 * zu erzeugen.
 * 
 * @author Heiner K&uuml;cker
 * @param <E> Typ des zu erzeugenden Objekts
 */
public interface Creator<E>
{
    /**
     * Zu implementierende
     * Erzeugungs-Methode.
     * 
     * @return erzeugtes Objekt
     */
    E create();
}
 

Zurück
Oben