有没有一种方法可以用元类对象来替换超类中的方法。
例如:
class A {
def doIt(){
two()
println 'do it!'
}
protected two(){
println 'two'
}
}
class B extends A{
def doLast(){
doIt()
}
}
B b = new B();
b.doIt()
/*
* two
* doit!
*/
b.metaClass.two = {
println 'my new two!'
}
b.doIt();
/*
* my new two!
* do it!
*/
doIt
并自己调用two
。或者创建一个测试特定的B子类,使用标准多态性覆盖two
而不是元类。 - ataylor