Reduzindo código com projeto lombok utilizando intellij

Rodrigo Maximiano
Dev Cave
Published in
4 min readJan 31, 2017

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.

  1. Abra seu intellij com o seu projeto, acesse File→ Project Structure aparece uma tela igual a esta abaixo.
  2. 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.
  3. 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.
  4. 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.

--

--