Bonjour!
Je souhaite récupérer le nom d'un attribut dans un string... comment faire?
Exemple:
int taille = 3;
String nomDeLattribut = "taille";
Bonjour!
Je souhaite récupérer le nom d'un attribut dans un string... comment faire?
Exemple:
int taille = 3;
String nomDeLattribut = "taille";
je crois que c'est possible avec l'api reflect (regarde la class Field)
Exactement, tu peux faire un
Plus qu'à savoir comment tu vas trouver ton Field...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Field f = ... ... f.getClass().getCanonicalName();
A+
Excellent, en exploitant votre idée, j'arrive à récupérer exactement ce qu'il me faut...
par contre, encore une question.
Je souhaite récupérer le nom de l'instance d'une classe (le nom de l'objet quoi).
Exemple:
public class maClasse{
...
afficher le nom de l'instance
...
}
public static void main(String[] args) {
maClasse instanceDeMaClasse = new maClasse();
}
Voila, j'aimerai afficher la chaine de caractere "instanceDeMaClasse" en rajoutant du code dans la classe maClasse... c'est possible?
Merciii
Re,
Si c'est juste pour faire un test et voir qui a appelé ta calsse, tu peux faire:
Ca va t'afficher tout le stacktrace...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Exception e = new Exception(); e.printStackTrace();
Sinon je sais pas trop comment faire!
A+
Ce n'est pas pour faire un test. En fait, je fais un genre de programme pour tracer un intergiciel d'eclipse...
Il me faudrait une solution transparente... qui ne fait pas intervenir les exceptions en tout cas... mais merci pour la proposition
D'autres idées?
En gros récupérer "instanceDeMaClasse" n'a pas de sens, dans le sens que
Le nom de la variable n'est que le nom du pointeur de l'instance, donc l'instance ne peut connaitre les variables qui le référence.
Et si tu accèdes à ton instance c'est que tu le fais depuis une variable...
Est-ce suffisament clair ?
Oui, effectivement, c'est clair...
C'est vraiment problématique pour mon projet...
En passant par la machine virtuelle (en exécutant une trace de celle ci) ca devrait etre possible non?
Merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager