Salut,
Comment peut on récupérer la valeur d'un type générique.
Certains paramètres de mes méthodes sont génériques. (Par exemple List<Point>). Comment connaitre le X de List<X> ?Code:
1
2
3 Method m; Class[] params =m.getParameterTypes()
Merci
Version imprimable
Salut,
Comment peut on récupérer la valeur d'un type générique.
Certains paramètres de mes méthodes sont génériques. (Par exemple List<Point>). Comment connaitre le X de List<X> ?Code:
1
2
3 Method m; Class[] params =m.getParameterTypes()
Merci
On ne le connais pas, seul l'utilisateur de ta classe le connait, la classe en elle même ne le connait pas, et pour cause, c'est juste une aide à la compilation.
Salut,
En fait cela dépend du type que tu utilises, mais il faut utiliser getGenericParameterTypes()...
Par contre il faut bien comprendre que tu ne pourras récupérer que le type défini dans le code source de la classe, et non pas celui utilisé à l'instanciation.
a++
autrement dit, dans ce code
Tu pourra depuis un référence à la classe Machin,Code:
1
2
3
4
5
6 public class Truc<X,Y> {...} public class Machin<X> extends Truc<X,String>{ public List<String> a; public List<X> b; }
récupérer le type déclaré de Y utilisé par Truc<X,Y>
récupérer le type déclaré de List pour le champ a
tu ne pourra pas récupérer
le type déclaré de X, car il n'a pas de type déclaré
le type décalré de b, car il n'a pas de type déclaré
(en réalité sur ces dernier points, tu tombera sur "Object" ;) )
D'accord merci,