Wie erhalte ich ein Class-Objekt für den Typparameter T in Java?
Hallo zusammen! Ich programmiere in Java noch nicht so lange und bin bei der Arbeit mit Generics auf ein Problem gestoßen. Ich habe eine generische Klasse und muss darin eine Instanz von Class für den Typparameter T erhalten. Zum Beispiel möchte ich eine Instanz von T per Reflection erstellen oder an eine Methode übergeben, die Class erfordert.
Hier ist ein Beispielcode, der nicht funktioniert:
```java
public class MyGenericClass {
public void doSomething() {
// Hier möchte ich Class erhalten, weiß aber nicht wie
Class clazz = T.class; // Compiler-Fehler!
// Dann möchte ich zum Beispiel eine neue Instanz von T erstellen
T instance = clazz.newInstance();
}
}
```
Der Compiler meldet: "Cannot select from a type variable". Ich verstehe, dass aufgrund von Type Erasure die Information über T zur Laufzeit verloren geht. Aber wie geht man dann vor? Ich habe gesehen, dass einige Frameworks (z.B. Gson oder Spring) irgendwie Klassen für Typen erhalten. Gibt es vielleicht ein Pattern oder einen Workaround?