Reescritura de llamadas a métodos dentro de las clases compiladas de Java.
Quiero reemplazar las llamadas a una clase dada con las llamadas a otra clase dentro de un cuerpo de método mientras analizo los archivos de clase compilados ...
O dicho de otra manera, ¿existe un método para detectar usos de una clase dada en un método y reemplazar solo esa parte del método usando algo comojavaassist.
por ejemplo .. si tuviera la versión compilada de
class A { public int m() { int i = 2; B.multiply(i,i); return i; } }
¿Existe un método para detectar el uso de B y luego modificar el código para realizar
class A { public int m() { int i = 2; C.divide(i,i); return i; } }
Sé que la alternativa sería escribir un analizador para grep los archivos de origen para usos, pero preferiría una solución más elegante, como el uso de la reflexión para generar nuevos archivos de clase compilados.
Alguna idea ?