La clase Expando de Groovy
¿Te imaginas una clase de Groovy a la que le puedes añadir, en tiempo de ejecución, propiedades y métodos? Pues eso es lo que te ofrece su clase Expando, cuyo uso es muy similar al modo en el que, en JavaScript, se usan objetos instanciando la variable Object.
// Define la classe Expando con dos propiedades:
def blog = new Expando(titulo : "metroSetenta", subtitulo : "Arquitectura y diseño de software")
// Añade una nueva propiedad a Expando:
blog.url="metrosetenta.es"
// Incluye un método con un cierre:
blog.toString={
return """
Título del blog: ${titulo}
Subtítulo del blog: ${subtitulo}
URL del blog: ${url}
"""
}
println (blog)
Observa en el pequeño ejemplo de arriba que el constructor usa una notación similar a los mapas Groovy y, que los métodos, son implementados usando cierres (closures). Puedes probar este pequeño ejemplo guardándolo en un archivo para ejecutarlo con el comando groovy.
$ groovy expandoText.groovy
Título del blog: metroSetenta
Subtítulo del blog: Arquitectura y diseño de software
URL del blog: metrosetenta.es
Este pequeño artículo se lo quiero dedicar con cariño a mi compañero Fran, que fue quien me mostró la clase Expando de Groovy.