2

(这是一个普遍的例子)

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

class StringMetaData {
    Object value
    String meta
}

Object.metaClass.withStringMetaData = { meta ->
   new StringMetaData(delegate, meta)
}

有了这样的想法,然后在我的程序中的任何地方我都可以做类似的事情:

def foo = 1.withStringMetaData("bar")

现在我可以获取foo.value值或foo.meta附加的字符串。

在本地上下文中,我可以在 Object 上定义此元方法,但我想让它在我的应用程序中全局可用,使此元方法在任何地方都可用的正确方法是什么?

4

1 回答 1

4

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

于 2013-01-11T07:17:29.063 回答