Pular para o conteúdo principal

Postagens

Mostrando postagens de Março, 2017

Melhorando a qualidade do código com Lombok

Olá pessoal, hoje iremos ver como podemos melhorar a escrita do código Java evitando o famoso "Don't repeat your self",  conhecido também como código boilerplate, isso tudo usando o projeto Lombok . O famoso código boilerplate O código boilerplate é aquele que a linguagem ou tecnologia, nos obriga a fazer para criar classes, métodos, e compor comportamentos aos nossos sistemas, no Java, temos muitos pontos que fazemos código boilerplate , as vezes nem percebemos, pois já estamos acostumados com a estrutura da linguagem. Com a evolução da plataforma Java, vários recursos foram introduzidos, que nos ajudou a reduzir o famoso código boilerplate , tais como: Lambdas, Streams, Optional, Default Methods, etc. Apesar da constante evolução da plataforma, ainda existem pontos que precisamos executar de forma manual, ou com a ajuda das IDEs, vamos avaliar alguns deles: Getters/Setters; Construtores; Equals e HashCode; toString(); Variáveis de log e depuração. 

Melhorando a sobrescrita dos métodos equals() e hashCode()

Olá hoje iremos melhorar a forma que realizamos uma tarefa que muitos desenvolvedores não gostam de fazer, ou até mesmo deixam de lado, mas é de extrema importância para o correto funcionamento dos nossos Objetos, que é a sobrescrita dos métodos equals  e hashCode(). Sobrescrita utilizando uma IDE A maioria das IDEs realizam a tarefa de sobrescrever os métodos equals(Object o) e hashCode() , mas o código gerado não é dos melhores, vamos analisar um exemplo da geração automática usando a IDE Eclipse, segue o código: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 public class Cliente { private String cpf ; public Cliente ( String cpf ) { this . cpf = cpf ; } public String getCpf () { return cpf ; } @Override public int hashCode () { final int prime = 31 ; int result = 1 ; result = prime * result + (( cpf == null ) ? 0 : cpf . hashCode ()); return