Exemplos com Supplier Java 8

Neste post vou mostrar alguns exemplos do uso da interface funcional Supplier do Java 8.

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - Java - TUTORIAL

Última atualização em: | 11840 Visualizações

Com a liberação no mercado do Java 8, tivemos várias novidades. Uma delas foram as interface funcionais, que explico melhor em outro post.

A interface Supplier do Java 8, nada mais é do que uma interface funcional, basicamente ela não aceita argumentos e retorna um resultado.

package java.util.function;

@FunctionalInterface
public interface Supplier<T> {
    T get();
}

Exemplo de uso do Supplier

Este é um exemplo do uso do Supplier para retornar a data atual, veja:

Supplier<LocalDate> supplierLocalDate = () -> LocalDate.now();

Note que criamos uma instância do tipo Supplier que recebe uma lambda expression que retorna a data atual.

Como o Supplier recebe uma expressão lambda, ainda podemos simplificar nosso código da seguinte forma:

Supplier<LocalDate> supplierLocalDate = LocalDate::now;


E para fazer uso do Supplier basta chamar o seu método get, veja o exemplo completo:

import static org.junit.Assert.assertEquals;
import org.junit.Test;
import java.time.LocalDate;
import java.util.function.Supplier;

public class SupplierTest {

    @Test
    public void test() {
        Supplier<LocalDate> supplierLocalDate = LocalDate::now;
        assertEquals(LocalDate.now(), supplierLocalDate.get());
    }
}

Supplier com DataTimeFormatter

import static org.junit.Assert.assertEquals;

import org.junit.Test;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.function.Supplier;

public class SupplierTest {

    @Test
    public void testDateFormated() {
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");

        Supplier<String> supplier = () -> dateTimeFormatter.format(LocalDateTime.now());
        assertEquals(dateTimeFormatter.format(LocalDateTime.now()), supplier.get());
    }
}

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Apoiadores

Publique seu post no Receitas de Código

Aguarde, estamos trabalhando para que você possa publicar sua postagem no Receitas de Código!