(这是一个普遍的例子)
我想创建一个可以在任何对象上调用的实用程序方法,它的签名如下:
class StringMetaData {
Object value
String meta
}
Object.metaClass.withStringMetaData = { meta ->
new StringMetaData(delegate, meta)
}
有了这样的想法,然后在我的程序中的任何地方我都可以做类似的事情:
def foo = 1.withStringMetaData("bar")
现在我可以获取foo.value
值或foo.meta
附加的字符串。
在本地上下文中,我可以在 Object 上定义此元方法,但我想让它在我的应用程序中全局可用,使此元方法在任何地方都可用的正确方法是什么?