我想使用Javassist将SomeClass.get(foo, "bar")
之类的内容翻译为foo.bar()
。
我调查了ExprEditor
,我尝试了类似的事情:
private static class StaticToInstanceAccessorConverter extends ExprEditor {
@Override
void edit(MethodCall methodCall) throws CannotCompileException {
if (methodCall.className.equals('my.package.Somaclass') && Modifier.isStatic(methodCall.method.getModifiers())) {
if (methodCall.methodName.equals('get')) {
methodCall.replace('{ $_ = $1.$2(); }')
}
}
}
}
```
但这似乎不起作用?任何提示都会受到欢迎!