0
私はJavaとJavassistを初めて使用しています。私は、特定のメソッドで私の原始的な変数のいずれかで各読み取りアクセスの前にロガーを追加したいと思います。いくつかの研究の後、私はこのコードを思い付いた: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();
}
は、変数がアクセスされた、または私は別の方法でこれを解決しなければならないの前に(ロガー)メソッドをコールする方法はありますか? Javassistを使ってこれを達成する最良の方法は何ですか?
希望誰かが私を助けることができます:)