Ich bin neu in Java und Javassist. Ich würde gerne einen Logger vor jedem Lesezugriff auf eine meiner primitiven Variablen in bestimmten Methoden hinzufügen. Nach einigen Recherchen kam ich mit diesem Code auf:Javassist insturmenter
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();
}
Gibt es eine Möglichkeit, einen (Logger) -Methode vor der Variablen aufrufen zugegriffen wird, oder muss ich dies auf eine andere Weise lösen? Was ist der beste Weg, dies zu erreichen, indem Sie Javassist verwenden?
Hoffnung jemand kann mir helfen :)