Je voudrais savoir si il y a un moyen d'obtenir la classe d'une classe générique.
Je suppose que certains vont dire qu'une classe générique n'a pas besoin d'être connue, toutefois dans mon cas précis je ne vois pas comment faire autrement car j'utilise Hibernate et l'objet Criteria au moment de sa création a besoin de la classe précise.
- Dans le code que j'ai posté, T.class est souligné en rouge et ne passe pas à la compilation (ça me semblait pourtant logique de pouvoir obtenir la classe avec cette syntaxe).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private <T>List<T> getList2(Class<T>t, String sortKey) throws Exception{ List<T> result; Criteria crit = hibernateSession.createCriteria(T.class); crit.addOrder(Order.asc(sortKey)); result = (List<T>)crit.list(); return result; }
- Si j'essaye avec getClassName(t) il ne me retourne pas le nom complet de la classe avec tout les packages.
- Si j'essaye t.getClass ça me retourne : "class java.lang.Class" donc c'est pas bon non plus.
En bref pas moyen d'obtenir le nom de cette fichue classe
Donc si quelqu'un sait comment faire. A moins qu'il y ait un moyen de faire autrement.
Partager