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