标签: java java-bytecode-asm
是否可以有效地计算方法调用?并且不添加新的类成员(静态计数器变量)?
答案 0 :(得分:2)
您可以通过您提供的静态方法挂钩报告呼叫。然后只需添加invokestatic指令以及您想要传递的任何参数。一个简单的方法会传递方法名称和描述符,但由于这一切都发生在运行时,您可以通过在第一次扫描类时使用检测API注册每个方法来避免每次调用的字符串比较,获取一个简单的令牌( int或long),并在调用记录调用的方法时修改每个方法以传递该标记。
invokestatic
int
long