Para ir direto ao ponto, segue abaixo exemplo de uso da annotation delegate,
que resumidamente é um atalho para metodos e propriedades...
import groovy.lang.Delegate; /** * Main */ class Main { static main(args) { def pessoa = new Pessoa() pessoa.nome = "rafael" pessoa.carro = new Carro() pessoa.carro.marca = "fiat" // antes de existir o delegate println pessoa.nome // "rafael" println pessoa.carro.marca // "fiat" println pessoa.carro.getMarca() // "fiat" // após uso do delegate println pessoa.marca // "fiat" - eita! pessoa nao tem essa propriedade diretamente... println pessoa.getMarca() // "fiat" eita! pessoa nao tem esse metodo... } } /** * Class Pessoa */ class Pessoa { def nome @Delegate def Carro carro } /** * Class Carro */ class Carro { def marca def getMarca() { return marca } }
Brinque no GroovyConsole.
Nenhum comentário:
Postar um comentário