Bonjour,
Je voulais savoir s'il existe une méthode qui permet de tout savoir sur un objet instancié, c'est à dire : ses attributs initialisé, ses méthodes utilisées, le ou les constructeurs appelé et bien sur de récupérer les valeurs.
Bonjour,
Je voulais savoir s'il existe une méthode qui permet de tout savoir sur un objet instancié, c'est à dire : ses attributs initialisé, ses méthodes utilisées, le ou les constructeurs appelé et bien sur de récupérer les valeurs.
Tu trouveras tout ce qu'il faut dans la Javadoc.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Ca ressemble beaucoup à un debugger ce que tu demandes...
Ce que tu cherches s'appelle l'introspection.
T as un bon tutoriel ici :
http://ricky81.developpez.com/tutori...pi/reflection/
parfait, concernant les classes mères, attributs et méthodes j'ai trouvé tout ce que je cherchais.
Du coup j'ai une autre petite question :
Est ce possible de déterminer toutes les classes des objets instanciés, c'est a dire si j'ai dans une classe A une appellation à une autre classe B :
public class A{
public void methode {
B b = new B();
}
}
j'aimerai récupérer toutes les classes appelées comme j'ai montré pour B.
Cela est-t'il possible?
En utilisant l'introspection, il suffit de récupérer l'ensemble des champs de la classe, puis pour chacun d'eux de récuperer leur type.
Restera alors à trier le résultat pour oter les doubons et les types simples.
Non, ça ne listera pas l'utilisation de ces classes à l'intérieur de blocs. Comme les variables locales d'une méthode, par exemple.
Je suis sûr qu'une telle chose est possible, en analysant le bytecode de la classe qu'on veut étudier, et en prenant la liste des classes dont elle dépend. Mais je ne connais pas d'outil pour ça, et je ne sais même pas si le bytecode d'une classe chargée est consultable par le programme.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Je n'ai pas très bien compris ta question. Tu veux analyser le code de la classe pour en déduire toutes les autres classes dont elle dépend ?
Dans ce cas je ne connais pas la solution. Dans quel cadre veux tu faire ça ?
Concernant l'introspection, garde en tête qu'il faut l'utiliser avec parcimonie à la fois pour des raisons de performances et de lisibilité.
C'est pas la bonne rubrique pour parler de ça, mais vue que tu demandes je te réponds:
Je veux décrire une interface gwt dans un fichier xml c'est à dire avoir son squelette. J'ai pas trouvé de solution direct, j'ai cherché partout mais j'ai pas eu ce que je cherche vue qu'on parle toujours de la sérialisation des objets métier et non des interface graphique (je parle côté gwt).
Mon idée donc et de déterminer les dépendances dans une interface et d'essayer de les organiser pour avoir mon fichier XML.
Et en analysant le bytecode ?
L'introspection repose sur ce principe, sauf que comme j'ai dit plut haut ca ne permet pas (d'aprés mes recherches et le tuto mentionné par Mens Pervincet) d'extraire les attributs internes à une méthode.
Je viens de verifier et en ouvrant le fichier .class, on trouve bien les classes utilisées dans les fonctions.
Apres, en utilisant par exemple ASM, ca devrait etre possible de lister les classes utilisées...
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