Referenciado Dinámico de Atributos

Además de la sintáxis de punto obj.atributo es posible referenciar un atributo utilizando el operador de subíndice obj[atributo]. Una ventaja de esta sintáxis es que permite acceder a los atributos de forma dinámica.

En el siguiente ejemplo el nombre del atributo se solicita desde System.in. La expresión leída es utilizada para obtener el valor del atributo dinámicamente:

~/Lgroovy/objects$ cat -n dynamicReferences.groovy 
     1  class DynamicAccess {
     2    public count = 9
     3    String attr = 'hola'
     4    def list = (1..10).toList()
     5  }
     6  
     7  x = new DynamicAccess();
     8  print "> "
     9  System.in.eachLine{ input ->
    10    println x[input]
    11    print "> "
    12  }

Para finalizar la entrada pulsamos CTRL-D:

generaciondecodigos@nereida:~/Lgroovy/objects$ groovy dynamicReferences.groovy 
> count
9
> attr
hola
> list
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
> ^D
generaciondecodigos@nereida:~/Lgroovy/objects$



Casiano Rodríguez León
2010-04-30