Question

Je dois écrire un agent pour mon application java, qui fait des trucs spécifiques à chaque création de tableau. Jusqu'à présent, je ne pouvais pas trouver un moyen d'utiliser mon code sur cet événement.

  1. java.lang.instrument.ClassFileTransformer ne reçoit pas « classes de tableau », donc aucun moyen de crochet dans « constructeur de tableau ». Et « classes de tableau ne sont jamais modifiables »
  2. aucun événement JVMTI correspond à cette

Toutes les suggestions?

Était-ce utile?

La solution

Vous devez modifier l'octet code de votre application pour le faire. J'ai trouvé ObjectWeb ASM pour être le meilleur outil pour le travail. L'idée générale est de:

  1. Créer un agent JVMTI qui intercepte les cours qui vous intéressent.
  2. Faites passer les classes à l'instrument à un transformateur de classe ASM.
  3. Dans le transformateur de classe, vous pouvez intercepter les opcodes Java liées à la construction d'un tableau, par exemple ANEWARRAY (voir pour plus spec JVM ) .
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top