en Javascript, on peut connaître le contenu d'une variable globale par
(au moins) deux méthodes :
soit :
maVariable = "toto";
nomVariable = "maVariable";
En javascript, on peut faire :
alert( eval( nomVariable ); ==> affiche "toto"
ou (mieux) :
alert( window[ nomVariable ]); ==> affiche "toto" (équivalent à
window.maVariable)
Y a-t-il moyen (ou astuce) en Java d'avoir le même résultat, cad
connaître le contenu d'une variable globale à partir de son nom ?
en Javascript, on peut connaître le contenu d'une variable globale par (au moins) deux méthodes :
soit : maVariable = "toto"; nomVariable = "maVariable";
En javascript, on peut faire : alert( eval( nomVariable ); ==> affiche "toto" ou (mieux) : alert( window[ nomVariable ]); ==> affiche "toto" (équivalent à window.maVariable)
Y a-t-il moyen (ou astuce) en Java d'avoir le même résultat, cad connaître le contenu d'une variable globale à partir de son nom ?
Merci d'avance pour vos réponses...
Pour une classe on a : Object o = new Object(); o.getClass().getDeclaredField("nomField").getBoolean(o);
Oui, merci, effectivement je dispose des noms des variables que je cherche. Maintenant, je ne vois pas comment connaître leur *contenu*. La méthode toString() renvoie simplement le "nom complet" de la variable.
Au vu des différentes réponses qui t'ont été apporté j'ai l'impression que personne n'a compris exactement ce que tu voulais en fait car cette méthode d'introspection n'a pas grand chose de commun avec les propositions de Map et ne peut pas servir a la même chose. En tout cas, quoi que tu fasses, il ne faut pas oublier que l'introspection est quelque chose de très lent, donc si tu as besoin de performances, fait attention.
Bonjour à François-Xavier GENDRIN
Bonjour,
en Javascript, on peut connaître le contenu d'une variable globale
par (au moins) deux méthodes :
soit :
maVariable = "toto";
nomVariable = "maVariable";
En javascript, on peut faire :
alert( eval( nomVariable ); ==> affiche "toto"
ou (mieux) :
alert( window[ nomVariable ]); ==> affiche "toto" (équivalent à
window.maVariable)
Y a-t-il moyen (ou astuce) en Java d'avoir le même résultat, cad
connaître le contenu d'une variable globale à partir de son nom ?
Merci d'avance pour vos réponses...
Pour une classe on a :
Object o = new Object();
o.getClass().getDeclaredField("nomField").getBoolean(o);
Oui, merci, effectivement je dispose des noms des variables que je cherche.
Maintenant, je ne vois pas comment connaître leur *contenu*. La méthode
toString() renvoie simplement le "nom complet" de la variable.
Au vu des différentes réponses qui t'ont été apporté j'ai l'impression
que personne n'a compris exactement ce que tu voulais en fait car
cette méthode d'introspection n'a pas grand chose de commun avec les
propositions de Map et ne peut pas servir a la même chose.
En tout cas, quoi que tu fasses, il ne faut pas oublier que
l'introspection est quelque chose de très lent, donc si tu as besoin de
performances, fait attention.
en Javascript, on peut connaître le contenu d'une variable globale par (au moins) deux méthodes :
soit : maVariable = "toto"; nomVariable = "maVariable";
En javascript, on peut faire : alert( eval( nomVariable ); ==> affiche "toto" ou (mieux) : alert( window[ nomVariable ]); ==> affiche "toto" (équivalent à window.maVariable)
Y a-t-il moyen (ou astuce) en Java d'avoir le même résultat, cad connaître le contenu d'une variable globale à partir de son nom ?
Merci d'avance pour vos réponses...
Pour une classe on a : Object o = new Object(); o.getClass().getDeclaredField("nomField").getBoolean(o);
Oui, merci, effectivement je dispose des noms des variables que je cherche. Maintenant, je ne vois pas comment connaître leur *contenu*. La méthode toString() renvoie simplement le "nom complet" de la variable.
Au vu des différentes réponses qui t'ont été apporté j'ai l'impression que personne n'a compris exactement ce que tu voulais en fait car cette méthode d'introspection n'a pas grand chose de commun avec les propositions de Map et ne peut pas servir a la même chose. En tout cas, quoi que tu fasses, il ne faut pas oublier que l'introspection est quelque chose de très lent, donc si tu as besoin de performances, fait attention.
Cenekemoi
Au vu des différentes réponses qui t'ont été apporté j'ai l'impression que personne n'a compris exactement ce que tu voulais en fait car cette méthode d'introspection n'a pas grand chose de commun avec les propositions de Map et ne peut pas servir a la même chose. En tout cas, quoi que tu fasses, il ne faut pas oublier que l'introspection est quelque chose de très lent, donc si tu as besoin de performances, fait attention.
Merci de ta remarque mais les performances ne rentrent pas en ligne de compte en l'état présent. C'est plus pour du debugging (ou logging) qu'autre chose.
Sinon, les réponses précédentes m'ont, au contraire, été bien utiles (cf. mon dernier post) mais merci à toi de t'en inquiéter...
-- Cordialement, Thierry ;-)
Au vu des différentes réponses qui t'ont été apporté j'ai l'impression
que personne n'a compris exactement ce que tu voulais en fait car
cette méthode d'introspection n'a pas grand chose de commun avec les
propositions de Map et ne peut pas servir a la même chose.
En tout cas, quoi que tu fasses, il ne faut pas oublier que
l'introspection est quelque chose de très lent, donc si tu as besoin
de performances, fait attention.
Merci de ta remarque mais les performances ne rentrent pas en ligne de
compte en l'état présent. C'est plus pour du debugging (ou logging)
qu'autre chose.
Sinon, les réponses précédentes m'ont, au contraire, été bien utiles
(cf. mon dernier post) mais merci à toi de t'en inquiéter...
Au vu des différentes réponses qui t'ont été apporté j'ai l'impression que personne n'a compris exactement ce que tu voulais en fait car cette méthode d'introspection n'a pas grand chose de commun avec les propositions de Map et ne peut pas servir a la même chose. En tout cas, quoi que tu fasses, il ne faut pas oublier que l'introspection est quelque chose de très lent, donc si tu as besoin de performances, fait attention.
Merci de ta remarque mais les performances ne rentrent pas en ligne de compte en l'état présent. C'est plus pour du debugging (ou logging) qu'autre chose.
Sinon, les réponses précédentes m'ont, au contraire, été bien utiles (cf. mon dernier post) mais merci à toi de t'en inquiéter...