Je dispose d'un fichier src .java qui ressemble à ceci:Génération de code Java: comment modifier une méthode de fichier java existante?
class Test { public void foo() { } }
Je souhaite modifier foo() programatically, en ce sens, dire ajouter un sysout et la faire ressembler à ceci:
public void foo() { System.out.println("hello world"); }
Existe-t-il des moyens connus de le faire en ne modifiant PAS directement le fichier src (RandomAccessFile)?
Quelques publications sur StackOverflow se réfèrent à CodeModel et à l'AST d'Eclipse JDT pour la génération de code. Je vois que ceux-ci vont aider à la génération de code à partir de zéro, et ne pas modifier le code existant. Y at-il une API qui vous permettrait de modifier le code existant et qui a une API aussi simple que AST de CodeModel/Eclipse JDT? Si non, quelle serait la meilleure façon de le faire?
Pourquoi voulez-vous faire? Est-ce un problème que vous ne pouvez pas résoudre sans génération de code? –
@Thomas Jung: il y a beaucoup de cas où "l'instrumentation de code octet" est utile. – SyntaxT3rr0r