(这是一个通用的例子)
我想创建一个可以在任何对象上调用的实用程序方法,它将具有如下签名:
class StringMetaData {
Object value
String meta
}
Object.metaClass.withStringMetaData = { meta ->
new StringMetaData(delegate, meta)
}
随着我的计划中的任何地方的想法,我可以做类似的事情:
def foo = 1.withStringMetaData("bar")
现在我可以获取值foo.value
或附加字符串foo.meta
。
在本地环境中,我可以在Object上定义这个元方法,但是我想在我的应用程序中全局使用它,这种元方法在哪里可以使用的正确方法是什么?
答案 0 :(得分:4)
也许一个常规的扩展模块可以帮助你。我自己从未尝试过,但文档说明,您可以向JDK类添加自定义方法。