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:

 

package com.matheuspcarvalho.util;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExtensao {
public static String formatarDateddMMYY(Date data) {
String formato = "dd/MM/YYYY";
SimpleDateFormat dateFormat = new SimpleDateFormat(formato);
return dateFormat.format(data);
}
}
package com.matheuspcarvalho.main;
import java.util.Date;
import com.matheuspcarvalho.util.DateExtensao;
import lombok.val;
import lombok.experimental.ExtensionMethod;
@ExtensionMethod({ DateExtensao.class })
public class Principal {
public static void main(String[] args) {
val dataAtual = new Date();
System.out.println("Data: " + dataAtual);
System.out.println("String data formatada: " + dataAtual.formatarDateddMMYY());
}
}
view raw Principal.java hosted with ❤ by GitHub

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.

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

Deixe um comentário