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);
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);
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);
Vincent Cantin
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 ?
Il y a la reflection.
Voir java.lang.reflect.* et java.lang.Class
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 ?
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 ?
Il y a la reflection.
Voir java.lang.reflect.* et java.lang.Class
Kupee
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...
En java une variable globale n'existe pas. tu peux implémenter un truc comme ca avec une Map dans un champ static d'une classe, tu met en clef son nom et en valeur sa valeur mais c'est vraiment crade comme programmation
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...
En java une variable globale n'existe pas.
tu peux implémenter un truc comme ca avec une Map dans un champ static
d'une classe, tu met en clef son nom et en valeur sa valeur mais c'est
vraiment crade comme programmation
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...
En java une variable globale n'existe pas. tu peux implémenter un truc comme ca avec une Map dans un champ static d'une classe, tu met en clef son nom et en valeur sa valeur mais c'est vraiment crade comme programmation
Pierre Gilquin
tu peux faire un dictionnaire (HashMap) avec la clef correspondant au nom de la variable ...
"Cenekemoi" a écrit dans le message de news: 4433d840$0$21287$
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...
-- Cordialement, Thierry ;-)
tu peux faire un dictionnaire (HashMap) avec la clef correspondant au nom de
la variable ...
"Cenekemoi" <thierry@no.spam> a écrit dans le message de news:
4433d840$0$21287$8fcfb975@news.wanadoo.fr...
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 ?
tu peux faire un dictionnaire (HashMap) avec la clef correspondant au nom de la variable ...
"Cenekemoi" a écrit dans le message de news: 4433d840$0$21287$
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...
-- Cordialement, Thierry ;-)
Cenekemoi
En java une variable globale n'existe pas.
j'entendais "globale dans une classe", bien sûr...
tu peux implémenter un truc comme ca avec une Map dans un champ static d'une classe, tu met en clef son nom et en valeur sa valeur mais c'est vraiment crade comme programmation
Toutafé, Kupee ;-)
De plus, je ne désire pas changer tout le code existant...
-- Cordialement, Thierry ;-)
En java une variable globale n'existe pas.
j'entendais "globale dans une classe", bien sûr...
tu peux implémenter un truc comme ca avec une Map dans un champ static
d'une classe, tu met en clef son nom et en valeur sa valeur mais c'est
vraiment crade comme programmation
Toutafé, Kupee ;-)
De plus, je ne désire pas changer tout le code existant...
j'entendais "globale dans une classe", bien sûr...
tu peux implémenter un truc comme ca avec une Map dans un champ static d'une classe, tu met en clef son nom et en valeur sa valeur mais c'est vraiment crade comme programmation
Toutafé, Kupee ;-)
De plus, je ne désire pas changer tout le code existant...
-- Cordialement, Thierry ;-)
Cenekemoi
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 ?
Il y a la reflection.
Voir java.lang.reflect.* et java.lang.Class
Oui, c'est effectivement très intéressant car on dispose des méthodes et des "fields" d'une classe...mais pas des variables (publiques ou non), hélas...
-- Cordialement, Thierry ;-)
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 ?
Il y a la reflection.
Voir java.lang.reflect.* et java.lang.Class
Oui, c'est effectivement très intéressant car on dispose des méthodes et
des "fields" d'une classe...mais pas des variables (publiques ou non),
hélas...
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 ?
Il y a la reflection.
Voir java.lang.reflect.* et java.lang.Class
Oui, c'est effectivement très intéressant car on dispose des méthodes et des "fields" d'une classe...mais pas des variables (publiques ou non), hélas...
-- Cordialement, Thierry ;-)
Cenekemoi
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.
-- Cordialement, Thierry ;-)
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.
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.
-- Cordialement, Thierry ;-)
alexandre cartapanis
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" (équiva lent à 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 cher che. Maintenant, je ne vois pas comment connaître leur *contenu*. La mét hode toString() renvoie simplement le "nom complet" de la variable.
Object obj = new Object(); Field fie = obj.getClass.getDeclaredField("nomField"); Object val = fie.get(obj);
L'idée c'est que tu passes une instance a ton field, et il vas récupé rer la valeur POUR CETTE INSTANCE. En effet, field est une classe qui indique les paramètre du champ (sa classe "conteneur", son type, ...) mais pas la valeur, puisque la valeur peut changer pour chaque instance. Il faut donc travailler avec une instance. C'est ce que je fais ici, en passant au field une instance (de la bonne classe naturellement).
Note bien que field.get(Object) renvoie un object, pour récupérer un String par exemple, il te faudra faire du transtypage:
String val = (String)fie.get(obj);
Voila, bonne chance :) -- Alexandre CARTAPANIS - Responsable Système et Réseau Email Gsm. 06 72 07 51 55
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" (équiva lent à
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 cher che.
Maintenant, je ne vois pas comment connaître leur *contenu*. La mét hode
toString() renvoie simplement le "nom complet" de la variable.
Object obj = new Object();
Field fie = obj.getClass.getDeclaredField("nomField");
Object val = fie.get(obj);
L'idée c'est que tu passes une instance a ton field, et il vas récupé rer
la valeur POUR CETTE INSTANCE.
En effet, field est une classe qui indique les paramètre du champ (sa
classe "conteneur", son type, ...) mais pas la valeur, puisque la valeur
peut changer pour chaque instance. Il faut donc travailler avec une
instance. C'est ce que je fais ici, en passant au field une instance (de
la bonne classe naturellement).
Note bien que field.get(Object) renvoie un object, pour récupérer un
String par exemple, il te faudra faire du transtypage:
String val = (String)fie.get(obj);
Voila, bonne chance :)
--
Alexandre CARTAPANIS - Responsable Système et Réseau
Email alexandre.cartapanis@macymed.fr
Gsm. 06 72 07 51 55
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" (équiva lent à 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 cher che. Maintenant, je ne vois pas comment connaître leur *contenu*. La mét hode toString() renvoie simplement le "nom complet" de la variable.
Object obj = new Object(); Field fie = obj.getClass.getDeclaredField("nomField"); Object val = fie.get(obj);
L'idée c'est que tu passes une instance a ton field, et il vas récupé rer la valeur POUR CETTE INSTANCE. En effet, field est une classe qui indique les paramètre du champ (sa classe "conteneur", son type, ...) mais pas la valeur, puisque la valeur peut changer pour chaque instance. Il faut donc travailler avec une instance. C'est ce que je fais ici, en passant au field une instance (de la bonne classe naturellement).
Note bien que field.get(Object) renvoie un object, pour récupérer un String par exemple, il te faudra faire du transtypage:
String val = (String)fie.get(obj);
Voila, bonne chance :) -- Alexandre CARTAPANIS - Responsable Système et Réseau Email Gsm. 06 72 07 51 55
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" (équiv alent à 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 variabl e.
Object obj = new Object(); Field fie = obj.getClass.getDeclaredField("nomField"); Object val = fie.get(obj);
L'idée c'est que tu passes une instance a ton field, et il vas récu pérer la valeur POUR CETTE INSTANCE. En effet, field est une classe qui indique les paramètre du champ (sa classe "conteneur", son type, ...) mais pas la valeur, puisque la valeu r peut changer pour chaque instance. Il faut donc travailler avec une instance. C'est ce que je fais ici, en passant au field une instance (d e la bonne classe naturellement).
Note bien que field.get(Object) renvoie un object, pour récupérer u n String par exemple, il te faudra faire du transtypage:
String val = (String)fie.get(obj);
Voila, bonne chance :)
J'ai oublié quelque chose, pour les types standard (int, boolean, ...), il faut utiliser la methode Field.getInt() ou Field.getBoolean() plutôt que Field.get().
Note que c'est ce que faisait le code: o.getClass().getDeclaredField("nomField").getBoolean(o);
Après, si le type est boolean et que tu utilises get(), peut être que la VM fais un transtypage automatique en Boolean. Elle le fais déjà pour les collections par exemple en version 1.5 (ça s'appel auto-boxing je crois), mais je n'ai jamais tester avec la reflexion, a voir.
-- Alexandre CARTAPANIS - Responsable Système et Réseau Email Gsm. 06 72 07 51 55
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" (équiv alent à
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 variabl e.
Object obj = new Object();
Field fie = obj.getClass.getDeclaredField("nomField");
Object val = fie.get(obj);
L'idée c'est que tu passes une instance a ton field, et il vas récu pérer
la valeur POUR CETTE INSTANCE.
En effet, field est une classe qui indique les paramètre du champ (sa
classe "conteneur", son type, ...) mais pas la valeur, puisque la valeu r
peut changer pour chaque instance. Il faut donc travailler avec une
instance. C'est ce que je fais ici, en passant au field une instance (d e
la bonne classe naturellement).
Note bien que field.get(Object) renvoie un object, pour récupérer u n
String par exemple, il te faudra faire du transtypage:
String val = (String)fie.get(obj);
Voila, bonne chance :)
J'ai oublié quelque chose, pour les types standard (int, boolean, ...),
il faut utiliser la methode Field.getInt() ou Field.getBoolean() plutôt
que Field.get().
Note que c'est ce que faisait le code:
o.getClass().getDeclaredField("nomField").getBoolean(o);
Après, si le type est boolean et que tu utilises get(), peut être que la
VM fais un transtypage automatique en Boolean. Elle le fais déjà pour
les collections par exemple en version 1.5 (ça s'appel auto-boxing je
crois), mais je n'ai jamais tester avec la reflexion, a voir.
--
Alexandre CARTAPANIS - Responsable Système et Réseau
Email alexandre.cartapanis@macymed.fr
Gsm. 06 72 07 51 55
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" (équiv alent à 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 variabl e.
Object obj = new Object(); Field fie = obj.getClass.getDeclaredField("nomField"); Object val = fie.get(obj);
L'idée c'est que tu passes une instance a ton field, et il vas récu pérer la valeur POUR CETTE INSTANCE. En effet, field est une classe qui indique les paramètre du champ (sa classe "conteneur", son type, ...) mais pas la valeur, puisque la valeu r peut changer pour chaque instance. Il faut donc travailler avec une instance. C'est ce que je fais ici, en passant au field une instance (d e la bonne classe naturellement).
Note bien que field.get(Object) renvoie un object, pour récupérer u n String par exemple, il te faudra faire du transtypage:
String val = (String)fie.get(obj);
Voila, bonne chance :)
J'ai oublié quelque chose, pour les types standard (int, boolean, ...), il faut utiliser la methode Field.getInt() ou Field.getBoolean() plutôt que Field.get().
Note que c'est ce que faisait le code: o.getClass().getDeclaredField("nomField").getBoolean(o);
Après, si le type est boolean et que tu utilises get(), peut être que la VM fais un transtypage automatique en Boolean. Elle le fais déjà pour les collections par exemple en version 1.5 (ça s'appel auto-boxing je crois), mais je n'ai jamais tester avec la reflexion, a voir.
-- Alexandre CARTAPANIS - Responsable Système et Réseau Email Gsm. 06 72 07 51 55