当使用Child类调用在Base类上定义的静态方法时,如何在Child类类型上调用它?:
class Base {
static def method(){
println "class on which this method is called? ${this}"
}
}
class Child extends Base {}
Child.method()
在上面的代码中,this
正确指向Base类。
答案 0 :(得分:0)
我不认为可以使用实际的静态方法来完成,但一个不错的选择是使用groovy expandoMetaClass 来添加静态闭包方法。在所述闭包内,您可以作为委托访问调用类。即。
Base.metaClass.static.anotherMethod = {
println "class on which another method is called? ${delegate}"
}
现在调用Base.anotherMethod()将委托引用Base并调用Child.anotherMethod将其指向Child。