我想读取一个方法的返回值,我必须将它传递给我使用method.insertAfter插入的代码。
示例:
public String sayHello(){
return "1";
}
我想使用javassist添加代码,someClass.someMethod()。
method.insertAfter("someClass.someMethod(<how to add that value here>);");
有谁能让我知道怎么做?
[编辑] 我无法编辑方法体,因为可能存在其他代码。上面的方法只是一个例子。
答案 0 :(得分:3)
这对我有用:
AssetFileDescriptor assetFileDescriptor = assetManager.openFd(fileName);
FileDescriptor fileDescriptor = assetFileDescriptor.getFileDescriptor();
FileInputStream stream = new FileInputStream(fileDescriptor);
如果方法返回void,则$ _将为null。 所以,在你的情况下,我认为这将有效:
method.insertAfter( "System.err.println( $_ );");
其中someMethod获取一个Object。