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$