2014-12-09 1 views

ответ

2

Вы можете сообщать о звонках с помощью статического метода, который вы предоставляете. Затем просто добавьте команду invokestatic вместе с любыми аргументами, которые вы хотите передать. Наивный подход будет передавать имя и дескриптор метода, но так как это происходит во время выполнения, вы можете избежать сравнения строк при каждом вызове, зарегистрировав каждый метод с помощью API-интерфейса инструментария при первом сканировании класса, верните простой токен (a int или long) и изменить каждый метод для передачи этого токена при вызове метода, который записывает вызовы.

+0

Спасибо! Лучше добавить статическую переменную в каждый класс. Однако в таком случае мне нужно сохранить хэш-карту с маркером key-method и количеством вызовов методов. Это довольно большая структура. –