OVH Cloud OVH Cloud

getClass

2 réponses
Avatar
Jules de chez Schmit d'en face
Bonjour,

Une des méthodes héritées de la classe object est getClass().
Est-ce que quelqu'un pourrait me donner qq exemples (utiles)
d'utilisation d'une telle méthode ?
Par exemple, est-il possible de récuperer la classe
d'un objet puis d'appeler une méthode qu'on n'aurait
pas pu appeler "directement" pour des raisons de typages ?

Merci d'avance,
J

2 réponses

Avatar
Emmanuel
Jules de chez Schmit d'en face wrote:
Bonjour,

Une des méthodes héritées de la classe object est getClass().
Est-ce que quelqu'un pourrait me donner qq exemples (utiles)
d'utilisation d'une telle méthode ?
Par exemple, est-il possible de récuperer la classe
d'un objet puis d'appeler une méthode qu'on n'aurait
pas pu appeler "directement" pour des raisons de typages ?

Merci d'avance,
J



C'est utile pour retourner sous forme de chaine le nom d'une classe. Il

y a plein d'autres besoins, mais tu les trouveras quand le moment sera
venu :-)
Le typage ne peut pas être contourné en Java.

Emmanuel

Avatar
Cassé Hugues
Jules de chez Schmit d'en face wrote:
Bonjour,

Une des méthodes héritées de la classe object est getClass().
Est-ce que quelqu'un pourrait me donner qq exemples (utiles)
d'utilisation d'une telle méthode ?
Par exemple, est-il possible de récuperer la classe
d'un objet puis d'appeler une méthode qu'on n'aurait
pas pu appeler "directement" pour des raisons de typages ?


Effectivement, grâce à la réflexivité, "java.lang.reflect.*", tu peux
faire toutes sortes de manipulations sur la classe:
- Voir la liste des constructeurs, méthodes, champs et le sinterfaces
implémentées.
- Sélectionner un constructeur ou une méthode et l'appeler.
- Sélectionner un champ et examiner sa valeur.

Trouver un constructeur est particulièrement utile si on indique un
chemin de classe dans un fichier de configuration et si on désire créer
un objet pour cette classe.
Le reste peut être intéressant si on désire faire des sérialisations
automatiques ou afficher des informations de déboguage complexes.


Merci d'avance,
J