Comment obtenir un objet Class pour un paramètre de type T en Java ?
Bonjour à tous ! Je code en Java depuis peu et j'ai rencontré un problème avec les génériques. J'ai une classe générique et j'ai besoin d'obtenir une instance de Class pour le paramètre de type T à l'intérieur. Par exemple, je veux créer une instance de T via la réflexion ou la passer à une méthode qui nécessite Class.
Voici un exemple de code qui ne fonctionne pas :
```java
public class MyGenericClass {
public void doSomething() {
// Ici, je veux obtenir Class, mais je ne sais pas comment
Class clazz = T.class; // Erreur de compilation !
// Ensuite, je veux, par exemple, créer une nouvelle instance de T
T instance = clazz.newInstance();
}
}
```
Le compilateur se plaint : "Cannot select from a type variable". Je comprends qu'à cause de l'effacement de type (type erasure), l'information sur T est perdue à l'exécution. Mais comment faire alors ? J'ai vu que dans certains frameworks (par exemple, Gson ou Spring), ils obtiennent des classes pour les types. Peut-être existe-t-il un motif (pattern) ou une solution de contournement ?