Reduzindo código com projeto lombok utilizando intellij
Fala galeraaa !
Está cansado de códigos java repetidos muitas vezes? Malditos getters, setter, constuctors etc. Vou apresentar aqui pra vocês um carinha bem legal chamado lombok.
O que é o projeto lombok ?
O projeto lombok visa reduzir esses vilões da linguagem java, simplesmente substituindo-os por um conjunto de anotações. O projeto lombok é capaz de injetar código imediatamente tornado se disponível para o desenvolvedor para mais informações.
Vou mostrar as annotations mais usadas do lombok, temos varias para quem quiser saber mais sobre é só acessar na documentação da a API.
@AllArgsConstructor → essa anotação é responsável por gerar um construtor com 1 parâmetro para cada atributo de sua classe. Você pode gerar um construtor para 1 ou mais parâmetros da sua classe de acordo com a sua necessidade.
@NoArgsConstructor → essa anotação é responsável por gerar um construtor sem parâmetros, vale ressaltar que se tiver campos final na sua classe deverá usar um atributo force = true em sua anotação.
@Getter → essa anotação e responsável por criar o getter de cada campo em que ela estiver denotada ou de todos os atributos se a colocamos no nível da classe.
@Setter → essa anotação e responsável por criar o setter de cada campo em que ela estiver denotada.
@ToString → ela é responsável por sobrescrever o toString da classe pelo toString do lombok que por padrão ele imprimirá seu nome de classe, juntamente com cada campo, em ordem, separados por vírgulas.
@Data → essa anotação e responsável por gerar um conjunto de anotações implícitas nela mesma como @ToString, @EqualsAndHashCode, @Getter e @Setter em todos os campos, e @RequiredArgsConstructor.
Usando Lombok
Para mostrar um exemplo rápido, vamos mostrar uma classe com dois atributos. No Java sem lombok, nosso código fica assim:
package cucumberTest.features;public class Person {private String name;
private String email;public Person (final String name, final String email) {
this.name = name;
this.email = email;
}public Person (final String name) {
this.name = name;
}public String getName () {
return name;
}public void setName (final String name) {
this.name = name;
}public String getEmail () {
return email;
}public void setEmail (final String email) {
this.email = email;
}@Override
public boolean equals (final Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;final Person person = (Person) o;if (name != null ? !name.equals(person.name) : person.name != null)
return false;
return email != null ? email.equals(person.email) : person.email == null;
}@Override
public int hashCode () {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + (email != null ? email.hashCode() : 0);
return result;
}@Override
public String toString () {
final StringBuilder builder = new StringBuilder()//
.append("Person [")//
.append("name=\"")//
.append(name + "\"")//
.append(",email=\"")//
.append(email + "\"")//
.append("]");
return builder.toString();
}
}
Já com Lombok:
package cucumberTest.features;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@AllArgsConstructor
@NoArgsConstructor
@Data
public class Person {private String name;
private String email;
}
Diferenças? Quase nada né? hahaha. Agora imagina que precisa incluir um novo atributo. Não precisa se preocupar com o getter e o setter. Ou pior, tente trocar o nome de um atributo!
Como incluir Lombok
Bom galera vamos lá, vou ensinar incluindo a biblioteca sem o uso de um gerenciador de dependência “maven, gradle etc…”, pois para isso já temos o maven repository. Vamos baixar a biblioteca, você pode baixar neste link https://projectlombok.org/download.html.
- Abra seu intellij com o seu projeto, acesse File→ Project Structure aparece uma tela igual a esta abaixo.
- Ao abrir a tela se não estiver em libraries (biblioteca) clique nesta opção como pode ver ao menu do lado esquerdo. Após isso note que temos os sinais de + que é para adicionar uma biblioteca. O sinal de menos que é para remover uma biblioteca e o icone de copy.
- Clique no sinal de + abrirá um subi menu perguntando se você quer adiconar uma biblioteca java ou se você quer adicioná-la por maven, no caso caso escolheremos por java abrirá está tela.
- Selecione a biblioteca que baixamos do site, após selecionar clique em Ok e depois Ok novamente, Pronto já incluimos nossa biblioteca lombok em nosso projeto
Agora é só sair pro abraço ? Não hehehe Para poder trabalhar efetivamente com ele, temos mais algumas configurações a nível de IDE então vamos lá.
- Neste passo iremos instalar o plugin do lombok para o intellij, clique em File → Settings aparecerá a tela abaixo.
- Na barra de pesquisa dessa tela iremos digitar Plugins e pesquisar após pesquisar no menu esquerdo selecione a opção Plugins será exibida a tela abaixo nota-se quem existe a opção Browse repositories…
- Após clicar em browse repositories iremos digitar na caixa de pesquisa lombok. Exibirá a tela abaixo.
- Clicaremos em Install, após instalar o plugin o intellij irá nos pedir para restartar clicaremos em Restart Intellij.
Uffa!!! Acabamos :), opa só que não. Lembra que citei lá em cima “O projeto lombok é capaz de injetar código imediatamente tornado se disponível para o desenvolvedor para mais informações “, então galerinha por esse motivo falta mais um passo para que o plugin do lombok funcione corretamente na hora de fazer o build da nossa aplicação e reconhecer os códigos pela nossas annotations do lombok.
Vamos agora para nosso ultimo passo para terminarmos a nossa instalação do lombok. Novamente clicaremos em File → Settings e no menu no canto esquerdo clicaremos em Build, Executions, Deployment → Compiler → Annotations Processors exibira está tela abaixo.
Clicaremos em Enable annotation processing, clicamos em apply e pronto finalmente concluímos nossa instalação do lombok no Intellij. Para instalação em outros IDEs veja a documentação.
Bom galera era isso que queria compartilhar com vocês.
Gostaria de agradecer ao meu amigo e companheiro de trabalho Lucas Nascimento que me mostrou o lombok.