Trouver toutes les instances d'un type de class connu - Java - Programmation
Marsh Posté le 08-01-2004 à 15:13:28
Question bête mais cette classe dont tu cherches à pister toutes les instances, c'est toi qui l'a écrite ??? Quand tu dis que tu cherches les instances d'un type donné, ce type fait référence à une interface que ces classes implémentent ???
Marsh Posté le 08-01-2004 à 15:16:16
non, ce n'est pas moi qui l'ai écrite, c'est une classe de logger tout bête, mais j'ai besoin de rediriger son output pour pouvoir stocker ses messages.
Et le type ne fait par référence a l'interface mais bien à l'objet class.
Marsh Posté le 08-01-2004 à 15:29:38
Si c'est un logger de Log4J, la méthode getCurrentLoggers() de l'interface LoggerRepository te retourne une Enumération avec tous les loggers qui ont été instanciés...
Sinon donne nous un peu + de détails sur ce logger, la manière dont les classes sont instanciées (factory ?) ...
Marsh Posté le 08-01-2004 à 15:34:59
Moi j'aimerai bien savoir comment faire ca pour n'importe quelle classe dans n'importe quel programme java. Quelqu'un sait si c'est possible ?
Marsh Posté le 08-01-2004 à 15:35:07
nope, ce n'est pas un logger de log4J, c'est le bête Logger de java.lang.object. Il est instancié par eclipse et donc je n'ai pas exactement la manière dont celui-ci est instancié.
Marsh Posté le 08-01-2004 à 15:37:30
benou a écrit : Moi j'aimerai bien savoir comment faire ca pour n'importe quelle classe dans n'importe quel programme java. Quelqu'un sait si c'est possible ? |
En utilisant AspectJ, on peut (il me semble) introduire des portions de code en amont et aval de n'importe quelle méthode, de n'importe quelle classe et pister les appels de méthodes... En utilisant un système de la sorte, on pourrait référencer tous les appels aux constructeurs d'une classe donnée
Marsh Posté le 08-01-2004 à 15:38:00
ReplyMarsh Posté le 08-01-2004 à 15:38:28
Je donne ma langue au chat
Ca revient à référencer toutes les instances d'une classe donc si on n'a pas le contrôle sur l'appel du constructeur (comme avec une factory sur laquelle on a la main), ça semble mal barré
Marsh Posté le 08-01-2004 à 16:23:01
http://java.sun.com/j2se/1.4.2/doc [...] jvmpi.html
Citation : |
Dans la VM c'est (il semble, d'après les discussions trouvées par google) impossible de le faire pour un type arbitraire sans modifier le constructeur par défaut de Object.
Marsh Posté le 08-01-2004 à 16:52:24
gizmo a écrit : nope, ce n'est pas un logger de log4J, c'est le bête Logger de java.lang.object. |
si tu parles des loggers du jdk1.4, l'api est a peu pres la meme que celle de log4j
et si c'est un logger propre à eclipse, pq tu ne regardes pas dans le code d'eclipse ou dans d'autres plugins?
et pourquoi tu veux toutes les instances, si c'est pas indiscret? le principe d'un logger en general c'est que tu en instancies un pour logger les trucs qui t'interessent(tu definis ta "categorie" ) et la config utilisateur derriere fait une selection de ce qui interesse l'user pour l'imprimer dans le fichier ou en console etc (niveau et categorie)
en tous cas c'est comme ça que log4j marche..
Marsh Posté le 08-01-2004 à 16:55:12
pour récupérer les messages d'erreurs qu'il créer automatiquement en interne et pouvoir les rediriger où on veut. Pour regarder le code d'éclipse, c'est ce qu'on va finir par devoir faire si on ne trouve pas d'autre moyen, mais bon...
Marsh Posté le 08-01-2004 à 16:57:22
gizmo a écrit : pour récupérer les messages d'erreurs qu'il créer automatiquement en interne et pouvoir les rediriger où on veut. |
euh dans ce cas tu configure ton logger correctement plutot que de bricoler ce que tu nous dis là..
avec log4j, tu changes d'appender. et tu peux en écrire un toi meme c'est relativement simple
gizmo a écrit : Pour regarder le code d'éclipse, c'est ce qu'on va finir par devoir faire si on ne trouve pas d'autre moyen, mais bon... |
euh ça me parait un peu moins con que de commencer à faire des bidouilles improbables moi..
Marsh Posté le 08-01-2004 à 17:02:47
the real moins moins a écrit : |
Tu comprends rien à l'art gros boulet.
Marsh Posté le 08-01-2004 à 17:13:18
nraynaud a écrit : Tu comprends rien à l'art gros boulet. |
Marsh Posté le 08-01-2004 à 15:07:10
Voila, j'ai des class d'un certain type qui ne sont pas instanciées directement par mon programme et j'aimerais pouvoir agir dessus.
Cependant, comme je ne connais pas leur nom, mais juste leur type, je cherche un moyen d'accéder à la liste des class instanciées en fonction de leur type.
Est-ce possible?