2012-12-17 6 views
0

나는 이것이 불가능하다고 확신하지만, 시도해 볼만한 것 같다. 내가 소유하지 않은 일부 기존 코드를 가지고 있고, 나는 완전히 별도의 내 코드를 유지하려면,이 원래 클래스클래스 전반에서 메소드 수정하기

public class myClass 
{ 
    public static void doStuffs() 
     { 
      x = x + 1; 
     } 
} 

이고 다른 클래스를 가지고 말 :

public static void setData() 
     { 
      //Set the data 
     } 

이 가능 실제 setData() 메소드를 수정하지 않고 setData()를 호출하면 doStuffs()를 호출 할 수 있습니까? 그렇다면 어떻게?

+4

AspectJ를가에 대한 답처럼 보인다하여 문제 –

+0

바이트 코드로만 작성됩니다. 일반적으로 코드를 건드릴 수 없거나 할당 된 코드 전체를 변경해야하는 경우 (이는 실제로 변경하는 것이 바람직하지 않습니다) 좋은 생각입니다. –

답변

0

예, Javaassist을 사용할 수 있습니다.
는이 LIB를 사용하여 런타임에 바이트 코드를 수정할 수 있습니다