Переписывание вызовов методов в скомпилированных классах Java
Я хочу заменить вызовы данного класса вызовами другого класса в теле метода при анализе файлов скомпилированного класса ...
или, другими словами, есть ли метод определения использования данного класса в методе и замены только этой части метода, используя что-то вродеjavaassist.
например .. если бы у меня была скомпилированная версия
class A { public int m() { int i = 2; B.multiply(i,i); return i; } }
Есть ли способ обнаружения использования B, а затем изменения кода для выполнения
class A { public int m() { int i = 2; C.divide(i,i); return i; } }
Я знаю, что альтернативой было бы написать парсер для поиска исходных файлов для использования, но я бы предпочел более элегантное решение, такое как использование отражения для генерации новых скомпилированных файлов классов.
Какие-нибудь мысли ?