(это обобщенный пример)
Я хотел бы создать служебный метод, который можно вызывать для любого объекта, он будет иметь подпись, например:
class StringMetaData {
Object value
String meta
}
Object.metaClass.withStringMetaData = { meta ->
new StringMetaData(delegate, meta)
}
С идеей, что в любом месте моей программы я мог бы сделать что-то вроде:
def foo = 1.withStringMetaData("bar")
И теперь я могу получить foo.value
для значения или foo.meta
для прикрепленной строки.
В локальном контексте я могу определить этот метаметод для Object, но я хотел бы сделать его доступным глобально в своем приложении. Как правильно сделать этот метаметод доступным везде?