Je suis en train de faire quelque chose comme ceci en Java:Existe-t-il un moyen de trouver le type d'un paramètre template (générique) en Java?
public static <T> T foo() {
return (T) bar(T);
}
public static Object bar(Class<?> klaz) {
return klaz.newInstance();
}
Mais le code ne compile pas, puisque je ne peux pas remplacer T pour une classe <>?.
Avec une classe concrète, je peux appeler bar comme:
bar(ConcreteClass.class);
Mais même ne fonctionne pas pour T. à-dire qu'il n'y a pas une telle chose comme T.class
En C#, typeof travaux pour les deux types de béton et de modèle. Donc, l'appel à la barre aurait été:
bar(typeof(T));
Mais je n'ai pas été en mesure de trouver quelque chose de similaire en Java. Est-ce que je manque quelque chose, ou est-ce que Java n'a pas le moyen d'obtenir le type d'un paramètre de modèle? Et si Java n'a pas la facilité, y a-t-il des solutions de contournement?