Groovy 如何扩展类方法及其子类

Groovy 如何扩展类方法及其子类,groovy,metaprogramming,Groovy,Metaprogramming,例如: class Kls { } class SubKls extends Kls { } Kls.metaClass { trySmth() {} } new SubKls().trySmth() 我希望SubKls可以调用扩展方法#trySmth 更新:也许我可以使用#invokeMissingMethod来解决它,但这还不够,因为我还想扩展一些核心类,如java.lang.Object和java.lang.Stringgroovy 2.4.0没有问题: class K

例如:

class Kls {

}

class SubKls extends Kls {

}

Kls.metaClass {
    trySmth() {}
}

new SubKls().trySmth()
我希望SubKls可以调用扩展方法#trySmth


更新:也许我可以使用#invokeMissingMethod来解决它,但这还不够,因为我还想扩展一些核心类,如java.lang.Object和java.lang.String

groovy 2.4.0没有问题:

class Kls {}

class SubKls extends Kls {}

Kls.metaClass {
  foo = {'bar'}
}

assert new SubKls().foo() == 'bar'