如何在Groovy中的对象上添加全局可用的元方法?

如何在Groovy中的对象上添加全局可用的元方法?,groovy,Groovy,(这是一个概括的例子) 我想创建一个可以在任何对象上调用的实用方法,它将具有如下签名: class StringMetaData { Object value String meta } Object.metaClass.withStringMetaData = { meta -> new StringMetaData(delegate, meta) } 我的想法是,在我的程序中的任何地方,我都可以做如下事情: def foo = 1.withStringMeta

(这是一个概括的例子)

我想创建一个可以在任何对象上调用的实用方法,它将具有如下签名:

class StringMetaData {
    Object value
    String meta
}

Object.metaClass.withStringMetaData = { meta ->
   new StringMetaData(delegate, meta)
}
我的想法是,在我的程序中的任何地方,我都可以做如下事情:

def foo = 1.withStringMetaData("bar")
现在我可以抓取
foo.value
作为值,或者
foo.meta
作为附加字符串


在本地上下文中,我可以在对象上定义此元方法,但我想在我的应用程序中使其全局可用,使此元方法随处可用的正确方法是什么?

也许groovy扩展模块可以帮助您。我自己从未尝试过,但文档中说,您可以向JDK类添加自定义方法。

也许groovy扩展模块可以帮助您。我本人从未尝试过,但文档中指出,您可以向JDK类添加自定义方法。

+1文档可能希望注意此功能仅适用于Groovy 2.0或更高版本。+1文档可能希望注意此功能仅适用于Groovy 2.0或更高版本。