Início > Desenvolvimento java > A mágica do Lombok

A mágica do Lombok

Recentemente conheci o projeto Lombok através do Agnaldo. Fiquei impressionado com a mágica apresentada no screencast e confesso que estava meio cético de que aquilo realmente seria possível.

Basicamente, através de anotações o Lombok é capaz de gerar automaticamente código na classe compilada e mantendo o código original limpo.
Por exemplo, dada a classe:


import lombok.Data;

@Data
public class Bean {
	private String string;
}

Através da annotação @Data, o Lombok gera os métodos:

1. Get e Set para variável de instância string;
2. O método toString;
3. O método equals;
4. O construtor público sem parâmetros.

O seu código original se mantém limpo, sem o overhead de código que diminui a legibilidade.

Baixei os fontes do projeto para entender como a mágica é feita e vi que existem duas abordagens:

1. Através da API de processamento de anotações do Java 6 e de várias dependências de classes do compilador da Sun, ele manipula o código em tempo de compilação;
2. Através do plugin do eclipse distribuído pelo projeto, é utilizado o componente JDT, que é responsável por realizar a compilação incremental do Eclipse, para manipular o código também em tempo de compilação.

No código fonte que baixei não encontrei a integração com o Netbeans, porém creio que deva seguir a mesma abordagem utilizada para o Eclipse.

Este mecanismo para manipular o código abre um leque de possibilidades, principalmente para reduzir o overhead de código necessário pela tipagem estática do java.
Estou pesquisando a possibilidade de utilizar este mecanismo para gerar métodos estáticos nas classes de entidade como “todos”, “findByXAndY”, etc…

import lombok.Data;
import lombok.NonNull;

@Data
public class Bean {
private String classSpec;
private String methodName;
private String methodDescriptor;
}

CategoriasDesenvolvimento java Tags:,
  1. Roger
    janeiro 14, 2010 às 4:32 pm | #1

    O Sr. está querendo fazer o Ruby no Java.

  1. Nenhum trackbacks ainda.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.