我想读取一个方法的返回值,我必须将它传递给我使用 method.insertAfter 插入的代码。
例子:
public String sayHello(){
return "1";
}
Run Code Online (Sandbox Code Playgroud)
我想使用 javassist 添加代码,比如 someClass.someMethod()。
method.insertAfter("someClass.someMethod(<how to add that value here>);");
Run Code Online (Sandbox Code Playgroud)
谁能让我知道如何做到这一点?
[编辑] 我无法编辑方法主体,因为可能存在其他代码。上面的方法只是一个例子。
这对我有用:
method.insertAfter( "System.err.println( $_ );");
Run Code Online (Sandbox Code Playgroud)
如果该方法返回 void,则 $_ 将为 null。所以,在你的情况下,我认为这会奏效:
method.insertAfter( "someClass.someMethod( $_ );");
Run Code Online (Sandbox Code Playgroud)
其中 someMethod 接受一个对象。