Exemplos com Supplier Java 8
Neste post vou mostrar alguns exemplos do uso da interface funcional Supplier
do Java 8.
Última atualização em: | 12531 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.