Accrocher une méthode existante en Java
Je veux brancher la méthode du Système..imprimer en Java et ont la possibilité de lire/modifier les variables utilisées dans la méthode avant de la partie de l'appel de la méthode qui ajoute vraiment la chaîne à ce que le flux de sortie est.
En C++, je voudrais juste détour de la fonction, ou définir une int3 instruction afin que je puisse accéder aux registres, mais en java, je n'ai aucune idée de la façon d'accomplir quelque chose de similaire.
source d'informationauteur Nowayz
Vous devez vous connecter pour publier un commentaire.
Vous pouvez réécrire le code d'octets de l'méthodes, et dans le processus d'acquisition/de changement de variables locales. Il n'est pas trivial. Voir notes ici.
Peut-être ce que vous voulez vraiment est un débogueur java? Vous pouvez connecter un débogueur à distance à un processus, d'ajouter un point d'arrêt, et de saisir/modifier les variables locales assez facilement à l'aide d'eclipse.
Quel est le réel problème que vous essayez de résoudre?
Jetez un oeil à cette lien.
Il sournoisement définit une statique de la classe anonyme, de sorte que le Système.points à quelque chose de différent, et donc
print
etprintln
route à travers cet objet.Vous pouvez réaffecter Système.(et du Système.err) à un autre objet qui fait ce que vous voulez faire avec elle. L'objet général de l'ancien Système.valeur de sorte que le résultat peut être fait à la fin.
Cela se fait habituellement dans le main() et influe sur l'ensemble de la JVM.
Nous utiliser pour avoir d'enrubannage automatique à 130 colonnes dans une très particulière contexte où plus les lignes sont tronquées.
Depuis le JDK 1.1, le
System.setOut
etSystem.setErr
méthodes sont ajoutées afin de permettre aux applications d'accrocher les cours d'eau.Lien : http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#setOut(java.io.PrintStream)
http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#setErr(java.io.PrintStream)
@Nowayz Certain temps avant que moi aussi j'avais le même problème avec moi.
Après quelques recherches, j'ai découvert
AOP
.AOP
c'est à direAspectJ
offre une facilité d'intercepter l'Api java en appliquant les pointcuts avant,après, autour de. Donc, avoir un coup d'oeil .Vous pouvez vous référer à ma question sur la pile .il peut vous aider.