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를 사용하여 이것을 달성하는 가장 좋은 방법은 무엇입니까?
희망 누군가가 나를 도울 수 :