Generic Type einer Generischen Klasse während der Laufzeit bekommen

Bitte aktiviere JavaScript!
Hey,
ich würde gerne den Generic class Type herausfinden können während der Laufzeit.
Das was man ursprünglich mit Klassennamen.class erhält möchte ich über die Generischen Typ zurückgegeben bekommen.

Java:
public class ExampleGeneric()<T>{
    T obj;
    //Beispiel Code
    public Type getGenericType(){
        return T.class;
    }
}
 
An Klassen direkt ist das unmöglich aufgrund von Type Erasure. Was allerdings geht, ist, diese Information an Feldern oder Methodenparametern zu bekommen. Also, wenn ein Feld oder ein Methodenparameter einen generischen Typ hat. Ebenfalls ist es möglich, diese Information an einer generischen Superklasse zu bekommen, wenn du mit einem Typargument von der Superklasse ableitest. Dann ist es möglich, das Typargument zu bekommen.
 
Damit die Superklasse das Typargument hat, musst Du schreiben:

Java:
public class MyClass extends TemplateClass<T> {
 
 
}
Wenn Du die explizite Klasse einsparen willst, hängst Du einfach eine öffnende und schliessende geschwungene Klammer an den Konstruktor an:


Java:
TemplateClass<String> strTmpl = new TemplateClass<String>(){};
Dadurch entsteht eine anonyme Klasse, welche die gewünschte Super-Klasse hat.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben