주어진 클래스 인스턴스에 대해 메소드를 반사적으로 대체 할 수 있습니까?클래스의 인스턴스에 대한 메서드를 재정의 하시겠습니까?
전제 조건 : 게임에 무시할 수있는 방법 act()
이 있습니다.
public class Foo {
public Method[] getMethods() {
Class s = Game.class;
return s.getMethods();
}
public void override()
{
Method[] arr = getMethods()
for (int i = 0; i<arr.length; i++)
{
if (arr[i].toGenericString().contains("act()")
{
// code to override method (it can just disable to method for all i care)
}
}
}
}
실제로 이런 종류의 흑 마법이 필요하지 않으면 바이트 코드 엔지니어링 및 프록시를 사용하여 구성 및 위임을 사용할 수 있습니다. –
로컬 익명 내부 클래스 메서드를 사용하는 것으로 충분하지 않은 이유는 무엇입니까? 실제 클래스의 서브 클래 싱. – zeller
주어진 인스턴스에서 서브 클래스를 동적으로 생성하고, 해당 클래스의 act 메소드를 재정의하고, 이전 인스턴스를 삭제하는 것이 더 쉬울까요? –