В groovy вы можете программно добавлять новые свойства к любому объекту с помощью metaClass
:
Object mapped = new Object()
mapped.metaClass."myNewProperty" = valueObj
Затем вы можете получить доступ к этому новому свойству, как и к любому другому свойству в вашем пользовательском объекте:
assert mapped.myNewProperty.equals(valueObj)
Затем, используя эти функции, вы можете создать новое свойство в вашем пользовательском объекте для каждой записи в данном Map
(инициализированном с соответствующим значением), как в следующей рабочей демонстрации:
import java.time.LocalDateTime
Map properties = [enable_api_security: false, owner: 'Hello', time: LocalDateTime.now()]
Object enhanced = new Object()
properties.each { key, value ->
enhanced.metaClass."$key" = value
}
println enhanced.enable_api_security
println enhanced.owner
println enhanced.time
Надеюсь, это поможет.