如何使用Javassist替换静态方法调用实例方法调用?

时间:2016-02-05 08:56:38

标签: java javassist

我想使用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(); }')
            }
        }
    }
}

```

但这似乎不起作用?任何提示都会受到欢迎!

0 个答案:

没有答案