Groovy Beans x Java Beans
Hey!
Ultimamente estou encima do meu TCC mais do que nunca. Está ficando cada vez mais complicado, mais complexo, mais robusto… (ai, faltou adjetivos aí..) O pior de tudo é que realmente ainda tem muita coisa pra ser feita. o.O
Mesmo assim voltei a dar uma lidinha sobre a linguagem Groovy e achei interessante a forma com que
ela trata os beans. Demorou, mas parece que todas as linguagens mais atuais notaram que fazer
manualmente os getters e setters para toda variável de instância de uma classe não está com nada.
Aleluia irmãos, mas existe o Eclipse pra que a gente possa gerar tudo automático. Era isso ou boa parte
dos programadores Java estariam condenados a ter LER por conta do ocultamento de informação. Felizmente
a linguagem Groovy reparou nesta falta de praticidade e trouxe características interessantes. Perfect!
GroovyBeans funcionam como os JavaBeans mas utilizando uma sintaxe mais simples (se piorasse, pra quê linguagem nova, né?!). Observe o exemplo abaixo em Groovy:
import java.util.Date
class Customer {
Integer id
String name
Integer age
static void main(args)
{
def customer = new Customer(id:1, name:"Thania", age:21)
println("Hello ${customer.name}")
}
}
Saída:
Hello Thania
O código em Groovy acima é equivalente ao seguinte código Java:
import java.util.Date;
public class Customer {
private Integer id;
private String name;
private Integer age;
// Desce mais...
public Integer getId() {
return this.id;
}
// Mais um pouquinho...
public String getName() {
return this.name;
}
// Só mais algumas linhas...
public Integer getAge() {
return this.age;
}
// Finalmente chegamos nos setters...
// Calma, a classe já tá acabando.
public void setId(Integer id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
// Sim, rola o scroll só mais um pouquinho...
public void setAge(Integer age) {
this.age = age;
}
// Ufa! Achei que não ía achar esse main nunca...
public static void main(String[] args) {
Customer customer = new Customer();
customer.setId(1);
customer.setName("Thania");
customer.setAge(21);
System.out.println("Hello " + customer.getName());
}
}
Gostei!