是否可以反思重写某个给定类的实例的方法?重写一个类的实例的方法?
先决条件:游戏有一个可覆盖的方法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方法并处理先前的实例会更容易吗? –