Artículo en DeveloperWorks sobre la anotación @Delegate
miércoles 02/09/2009
Scott Davis publica en DeveloperWorks un interesante artículo sobre la anotación @Delegate, que permite tratar todos los miembros de otro objeto como propios de la clase que lo declara. Por ejemplo:
class AllCapsString{
@Delegate final String body
AllCapsString(String body){
this.body = body.toUpperCase()
}
String toString(){
body
}
}
En éste ejemplo, la clase AllCapsString obtiene todos los métodos de String, de forma que podríamos tratar los objetos de esta clase como si fueran Strings.
"Al concentrarse en la capacidad de añadir nuevos comportamientos a las clases en lugar de transformar su tipo, las posibilidades de metaprogramación de Groovy abren nuevas posibilidades sin violar las reglas del sistema de tipos estáticos de Java".












