使用 javassist 读取方法的 return 值

Read the return value of a method using javassist

我想读取一个方法的 return 值,我必须将它传递给我使用 method.insertAfter 插入的代码。

示例:

public String sayHello(){
    return "1";
}

我想添加代码 someClass.someMethod() 使用 javassist。

method.insertAfter("someClass.someMethod(<how to add that value here>);");

谁能告诉我怎么做?

[编辑] 我无法编辑方法主体,因为可能存在其他代码。以上方法只是一个例子。

这对我有用:

    method.insertAfter( "System.err.println( $_ );");

如果方法returns无效,则$_将为空。 因此,对于您的情况,我认为这会起作用:

    method.insertAfter( "someClass.someMethod( $_ );");

其中 someMethod 需要一个对象。