컴파일 된 클래스 파일을 구문 분석하는 동안 메소드 본문의 다른 클래스에 대한 호출로 주어진 클래스의 호출을 바꾸길 원합니다 ...
또는 다른 방법으로 넣으면 사용법을 감지하는 방법이 있습니까? 메서드에서 해당 클래스의 일부만을 javaassist과 같은 것을 사용하여 바꿉니다. 제가컴파일 된 Java 클래스 내에서 메소드 호출 재 작성
class A { public int m() { int i = 2; B.multiply(i,i); return i; } }
의 컴파일 된 버전이 있다면
class A { public int m() { int i = 2; C.divide(i,i); return i; } }
내가 대안 알고 수행하는 코드를 B의 이용을 검출하고 변경하는 방법은, 예를 들면
.. 존재 파서를 사용하여 소스 파일을 grep하는 것이지만 새로 컴파일 된 클래스 파일을 생성하기 위해 리플렉션을 사용하는 것과 같은보다 우아한 솔루션을 선호합니다.
의견이 있으십니까?
면책 조항 : 저는 java 코더가 아닙니다. IE의 질문에 대답하는 함수를 재정의하지 않는 이유는 무엇입니까? 클래스 A2는 {public int m() {int i = 2; C.divide (i, i); i를 되 돌린다. }} –
[AspectJ] (http://www.eclipse.org/aspectj/)와 같은 AOP 프레임 워크는 원하는 것을 할 수 있어야한다. – gustafc