Bonjour,
Tout est dans le titre. Je veux récupérer l'instance d'une classe dont j'ai le toString() par défaut (mon.package.MaClasse@hashCodeEnExa).
Est-ce possible ?
Si oui, comment ?
Bonjour,
Tout est dans le titre. Je veux récupérer l'instance d'une classe dont j'ai le toString() par défaut (mon.package.MaClasse@hashCodeEnExa).
Est-ce possible ?
Si oui, comment ?
Salut,
Pas sûr de comprendre ce que tu veux :
- Tu veux récupérer n'importe quelle instance de la classe ? Dans ce cas ce doit être possible avec la reflection si le type est instanciable.
- Tu veux récupérer l'instance exact qui a généré ce toString() ??? Dans ce cas c'est impossible IMHO.
a++
J'ai un petit problème de JSP alors j'utilise un truc moche et sale pour pas refaire toute la page (puisque l'application risque d'être entièrement refaite d'ici pas longtemps). Alors j'ai le nom de mes classes mais si ce n'est pas possible je vais m'arranger autrement. :) Merci !
Ma première réaction a été de penser que ça n'est pas possible parce qu'il faut d'une manière où d'une autre parser la table d'allocation de la JVM et je ne connais pas d'API dans le JDK qui permette ce genre de manipulations.
Mais j'ai regardé un peu le net et je suis tombé là dessus: http://publib.boulder.ibm.com/infoce...assFinder.html
Si IBM arrive à faire un code qui permet d'obtenir la liste de toutes les instances d'une classe donnée, c'est que ça doit bien être réalisable. Ensuite, c'est simple dans cette liste de trouver la bonne instance...
Maintenant, je ne sais pas (encore) comment il ont fait ça.
BiM : détaille ton problème ;)
Yomhgui : il y a des chances que ce soit spécifique à leur JVM ;)
Sinon c'est peut-être possible via les outils de monitorings, mais c'est vraiment sortir l'artillerie lourde !!!
a++
Je suis passé vite fait là dessus: "Find all the java.lang.Class objects associated with a particular class in the Java runtime". Ca prête un peu à confustion je trouve (find objects associated to a class), mais tu as raison. A regarder les méthodes, ce sont des helpers pour manipuler les Class. Rien de bien sorcier d'une part et rien qui traite la question...