使用 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 需要一个对象。
我想读取一个方法的 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 需要一个对象。