Introspection : comment trouver toutes les classes filles ? - Java - Programmation
Marsh Posté le 15-11-2005 à 17:45:44
non. les classes sont chargées à la demande.
si charger une classe nécessite de charger toutes ses parentes, elle ne dit rien sur ses filles. Sinon, on serait obligé de tout charger tout le temps.
Marsh Posté le 15-11-2005 à 22:47:06
Merci pour la réponse.
Il ne me reste plus qu'à pleurer...
Marsh Posté le 24-11-2005 à 17:05:19
Regarde la méthode getSubClasses, cela te donnera sans doute des idées :
http://www.johnspurlock.com/projec [...] Utils.java
La javadoc génère aussi les classes dérivées.
Marsh Posté le 25-11-2005 à 03:36:24
tain mais il aurait pas encore pu en mettre plus de ses merdes, dans cte classe?
un php'eux qui s'est perdu ou quoi ?
Marsh Posté le 25-11-2005 à 07:39:49
Si tu veux vraiment utiliser la réflexivité à fond, tu peux toujours utiliser un API réflexif pour java tel que Javassist et openJava. Pour offrir davantage de possibilités (métaclasses, métaobjets, etc.), ces api reflexifs (1) remplacent la machine virtuelle par une trafiquée ou (2) remplacent le class loader ou (3) utilisent un préprocesseur.
Toutefois, à moins que tu en aille vraiment besoin, je ne pense pas que tu devrais utiliser ces outils, car ça implique beaucoup de choses (restreint la portabilité du code...).
Marsh Posté le 25-11-2005 à 10:04:29
Sinon j'ai sous le coude une classe qui me permet de trouver toutes les classes filles d'une classe.
Je m'en sers pour faire des plugins.
Marsh Posté le 25-11-2005 à 10:05:39
yes, loadage de toutes les classes du classpath pour rien, et zappage total des autres classloaders, je présume?
Marsh Posté le 25-11-2005 à 10:05:53
ReplyMarsh Posté le 25-11-2005 à 10:15:46
Comme marqué en commentaire, je me suis inspiré de http://java.developpez.com/sources [...] rs#plugins
Code :
|
Marsh Posté le 25-11-2005 à 10:16:55
the real moins moins a écrit : yes, loadage de toutes les classes du classpath pour rien, et zappage total des autres classloaders, je présume? |
pas trop compris, mais peut-être bien
Marsh Posté le 25-11-2005 à 10:25:55
// TODO ? quoi servent ces 2 lignes
à recuperer le nom du jar depuis l'url d'une resource, qui ressemble à qqchose comme
file:///home/bobuse/pouet/tralala.jar!foo/bar/truc.properties
Marsh Posté le 25-11-2005 à 10:27:21
bobuse: faudrait ptet voir à utiliser un systeme de déclaration de plugins/services hein, plutot que d'aller à la peche aux canards sur le filesystem
Marsh Posté le 25-11-2005 à 10:27:51
(cfr avant-derniere page (je crois) sur le topic de l'élite du java mondial de besançon)
Marsh Posté le 25-11-2005 à 10:35:47
the real moins moins a écrit : bobuse: faudrait ptet voir à utiliser un systeme de déclaration de plugins/services hein, plutot que d'aller à la peche aux canards sur le filesystem |
oui d'accord, mais là c'est du quick and dirty hien !
Mais je note ...
Marsh Posté le 25-11-2005 à 10:36:50
euh, dirty oui, quick, par contre, je sais pas
Marsh Posté le 25-11-2005 à 10:39:04
the real moins moins a écrit : euh, dirty oui, quick, par contre, je sais pas |
pour l'écrire ? ha ba si, puisque j'ai pompé pas mal sur le source récupéré sur dev.com
Marsh Posté le 25-11-2005 à 10:40:24
the real moins moins a écrit : (cfr avant-derniere page (je crois) sur le topic de l'élite du java mondial de besançon) |
quoi donc ? (je trouve pas)
Marsh Posté le 25-11-2005 à 10:40:42
certes.
mais un machin propre aurait pas pris plus longtemps.
voire encore moins longtemps si commons-discovery était documenté.
Marsh Posté le 25-11-2005 à 10:53:00
merde quel crétin, je me suis platé de topic !!!
http://forum.hardware.fr/hardwaref [...] m#t1252443
Marsh Posté le 15-11-2005 à 17:38:22
Bonjour,
Grâce à l'introspection, j'ai découvert qu'il était très facile de retrouver de manière dynamique la classe mère d'une classe en utilisant la classe Class.
Peut-on faire l'inverse ? C'est à dire, étant donné une classe, retrouver toutes ses classes filles ? Et si oui, comment ?
Merci.