Criando métodos de extensão em Java com Lombok

Neste post estarei mostrando como criar métodos de extensão no Java através da biblioteca Lombok.

A biblioteca lombok possui um conjunto de anotações que ajudam a diminuir a quantidade de código em nossas classes java como as @Getter@Setter, @Equals, @Data entre outras. Mas neste post mostrarei a @ExtensionMethod.

Método de extensão é um recurso que permite criar um novo método e chamar de um tipo existente sem modificar o mesmo. A linguagem C# possui nativamente, mas com Java precisamos do lombok. Preparei um exemplo para explicar a utilização deste recurso:

 

Na classe DateExtensao.java foi criado o método estático formatarDateddMMYY(Date data) que recebe uma data. Esse parâmetro representará o Date que chamaremos este método e que iremos formatar.

Em Principal.java temos a anotação @ExtensionMethod({DateExtensao.class }). Com ela podemos utilizar o método formatarDateddMMYY() implementado em DateExtensao.java a partir de qualquer Date. Em seguida instanciamos uma data usando inferência de tipos do lombok com val que será implementada no Java 10 através da palavra chave var e printamos a data e a String com a data formatada.

A saída no console é a seguinte:

Data: Thu Nov 30 21:23:53 GMT-03:00 2017
String data formatada: 30/11/2017

Essa abordagem tem o mesmo resultado que chamar um método estático e passar a data para ser formatada.

Essa foi uma demonstração de uso do lombok para implementar métodos de extensão no Java. Espero ter ajudado . 🙂

Este post é dedicado a meu irmão Luis Fernando.

Anúncios

2 comentários em “Criando métodos de extensão em Java com Lombok”

Deixe um comentário

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

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s