Frédéric Mallet > Programmation Avancée > TD2 - Introspection et Réflexivité

TD2 - Introspection et Réflexivité

De $1

La classe Class

Travail à effectuer

  • Ecrire un programme Java auquel on donne le nom d'une classe (une chaîne de caractères) et qui affiche toute l'information que l'on peut obtenir par introspection (modificateurs, classes dont elle hérite, interfaces implémentées, membres avec leur type et leur modificateur).
  • Vous pouvez si vous le souhaitez partir de ce squelette de programme (AnalyseurDeClasse.java) et le compléter. 

Résultat attendu

Pour la commande 

java AnalyseurDeClasse java.awt.Point

/div/div[2]/p[2]/span, reference to undefined name 'syntax'

Une méthode toString() générique

Travail à effectuer :

  1. Utiliser l'introspection pour créer un méthode toString(...) générique. Il s'agit en pratique de faire une méthode toString qui prend en paramètre un objet de type Object et affiche la valeur de chacun de ses champs. Attention, si les champs sont des références sur d'autres objets on descendra en profondeur pour afficher "récursivement" leur valeur également. 
     
  2. Comme il faut bien s'arrêter un jour, la méthode toString(...) aura un deuxième paramètre qui est la profondeur à laquelle on souhaite descendre.

Exemple

Le code Java suivant :

/div[2]/div[2]/p[2]/span, reference to undefined name 'syntax' 

doit provoquer le résultat ci-dessous:

java.awt.Point[x=12; y=24; serialVersionUID=-5276940640259749850]
java.awt.Polygon[npoints=3; xpoints={10, 20, 30}; ypoints={20, 30, 40}; 
                 bounds=java.awt.Rectangle[x=10; y=20; width=20; height=20; 
                                           serialVersionUID=-4345857070255674764; 
                                           OUT_LEFT=1; OUT_TOP=2; OUT_RIGHT=4; 
                                           OUT_BOTTOM=8]; 
                 serialVersionUID=-6460061437900069969; MIN_LENGTH=4]

 

Mots clés:
 
Images (0)
 
Commentaires (0)
Vous devez être connecté pour poster un commentaire.