Как я могу применить / перехватить Method.invoke в агенте ByteBuddy? - PullRequest
0 голосов
/ 10 июня 2019

Это не похоже на работу:

new AgentBuilder
  .Default()
  .with(initStrat)
  .ignore(not(is(Method.class)))
  .type(any()).transform(....)

Кроме того, я хочу перехватывать только java.lang.reflect.Method.invoke, а не другие методы класса Method.

Кроме того, где в коде можно увидеть список классов, пакетов и модулей, которые по умолчанию игнорируются?

1 Ответ

0 голосов
/ 10 июня 2019

Это кажется правильным, но инструментарий классов в загрузочном классе особенно сложен, так как ваш агент не будет виден таким классам. В трансформатор добавьте свою аппаратуру и ограничьте ее методом invoke с помощью соответствующего средства сопоставления.

Добавьте AgentBuilder.Listener, чтобы получать уведомления обо всех классах, оснащенных Byte Buddy.

...