Vous êtes sur la page 1sur 2

Université A.

Mira de Bejaia Année 2017/2018


Département Informatique 1 ier Année Matser
Tp programmation avancée

TPN°1 : La réflexivité (Introspection)


L'introspection consiste à découvrir de façon dynamique des informations propres à une
classe Java. Ces informations appelées méta données, décrivent de façon exhaustive les
caractéristiques d'une classe Java (champs, méthodes, ...).

Le but de ce TP est d’assimiler ces concepts. Pour cela, nous allons créer une classe
Exemple  qui permet de récupérer les informations de la classe String :

1. Créer une classe Exemple pour récupérer l’objet Class de la classe String:
public class Exemple {

public static void main(String[] args) {

Class c = new String().getClass();


}
}

2. Interroger un objet Class


a. Connaître la liste des interfaces de la classe String

La méthode getInterfaces() de l'objet Class nous retourne un tableau de Class

Class[] faces = c.getInterfaces();

Afficher la liste des interfaces de la class String ?

b. Connaître la liste des méthodes de la classe String

La méthode getMethods() de l'objet Class nous retourne un tableau d'objets Method présents
dans le package java.lang.reflect.

Ecrivez un code qui retourne le nombre et la liste des méthodes de la classe String ?

c. Connaître la liste des champs (variables de classe ou d'instances) de la classe Stri ng


d.

la méthode getFields() retourne un tableau d'objets Field.


Ecrivez un code qui affiche la liste des champs de la classe String ?

e. Connaître la liste des constructeurs de la classe String

La méthode getConstructors() de l'objet Class nous retourne un tableau d'objets Constructor


3.
présents dans le package java.lang.reflect.Constructor.

Ecrivez un code qui affiche la liste des constructeurs de la classe String ?


Utilisez la méthode getName() pour récupérer le nom de chaque constructeur ?

Chargée de TP Mme GHANEM


Université A.Mira de Bejaia Année 2017/2018
Département Informatique 1 ier Année Matser
Tp programmation avancée

Instanciation dynamique

Généralement, l’instanciation d’une classe se fait avec le mot clé new mais dans le cas où la
classe n’appartienne pas au projet courant ou lorsqu’on ne peut pas connaitre à l'avance
quelle classe il faut instancier, alors l’instanciation avec le mot clé new ne marche plus pour
cela, on doit utiliser l’instanciation dynamique  

But : le but consiste à créer un objet sans utiliser l'opérateur new.

Exercice : Ecrire un programme qui permet d’instancier des objets dont le nom de la classe
est passé en argument du programme. 

forName() : Permet à partir d'une chaîne de caractères désignant une classe d'instancier un
objet de cette classe.

toString() est définie dans la classe Object ; en conséquence, toutes les classes Java en


héritent. La méthode toString()  renvoie des informations (le nom …) sur la classe de l'objet
concerné.

newInstance() permet de créer une instance de la classe et d'invoquer son constructeur par
défaut.

Chargée de TP Mme GHANEM

Vous aimerez peut-être aussi