如何扩展 Class 方法并影响其子类
How to extend Class method and effect its subclass
例如:
class Kls {
}
class SubKls extends Kls {
}
Kls.metaClass {
trySmth() {}
}
new SubKls().trySmth()
希望SubKls可以调用扩展方法#trySmth
更新:也许我可以使用#invokeMissingMethod 来解决它,但这还不够,因为我还想扩展一些核心 Class 例如 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'
例如:
class Kls {
}
class SubKls extends Kls {
}
Kls.metaClass {
trySmth() {}
}
new SubKls().trySmth()
希望SubKls可以调用扩展方法#trySmth
更新:也许我可以使用#invokeMissingMethod 来解决它,但这还不够,因为我还想扩展一些核心 Class 例如 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'