Je suis nouveau à Java et Javassist. Je voudrais ajouter un logger avant chaque accès en lecture sur une de mes variables primitives dans certaines méthodes. Après quelques recherches, je suis venu avec ce code:Instaurementer Javassist
try {
method.instrument(
new ExprEditor() {
public void edit(FieldAccess fa) throws CannotCompileException {
CtField field = null;
CtClass fieldType = null;
try {
field = fa.getField();
fieldType = field.getType();
} catch (NotFoundException e) {
e.printStackTrace();
}
if (fa.isReader() && field != null && fieldType.isPrimitive()){
System.out.println("Primitive found: " + field.getName());
//ToDo: call method before variable access
fa.replace("{ $_ = $proceed($$); }");
}
}
}
);
} catch (CannotCompileException e) {
e.printStackTrace();
}
Est-il possible d'appeler une méthode (enregistreur) avant la variable est accessible, ou dois-je résoudre ce d'une manière différente? Quel est le meilleur moyen d'y parvenir en utilisant Javassist?
quelqu'un l'espoir peut me aider :)