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()); | |
| } | |
| } |
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.
parabéns manolo!!!
CurtirCurtido por 1 pessoa
Obrigado Bruno!
CurtirCurtir
Ótimo post, Partiu utilizar Lombok ,Parabéns.
CurtirCurtido por 1 pessoa
Obrigado Iuri!
CurtirCurtir
Vlw brother, ajudou bastante num projeto em que estou trabalhando.
CurtirCurtido por 1 pessoa
🙂
CurtirCurtir