quinta-feira, abril 28, 2011

Groovy: anotacao @delegate



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