是否可以反思重寫某個給定類的實例的方法?重寫一個類的實例的方法?
先決條件:遊戲有一個可覆蓋的方法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方法並處理先前的實例會更容易嗎? –