DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

2 1

Capítulo 3: Interfaces funcionais

No Java 8, interfaces funcionais são aquelas que possuem apenas um método abstrato. Elas podem ser instanciadas usando expressões lambda, facilitando a programação funcional e tornando o código mais conciso e legível.

🔹 Exemplo 1: Uso de Consumer
A interface Consumer possui um único método abstrato (accept(T t)), permitindo que seja usada com expressões lambda:

//Consumer<T>: Usado para consumir um valor sem retornar nada, como imprimir valores:
        Consumer<String> print = System.out::println;
        List<String> usuarios = List.of("Alice", "Bob", "Charlie");
        usuarios.forEach(print::accept);
Enter fullscreen mode Exit fullscreen mode

Caso a interface tivesse mais de um método abstrato, o compilador não conseguiria inferir automaticamente qual método implementar.

🔹 Exemplo 2: Uso de Runnable (Pré e Pós-Java 8)
Antes do Java 8, ao criar uma Thread, a interface Runnable era instanciada da seguinte forma:

Runnable r = new Runnable() {
    public void run() {
        for (int i = 0; i <= 1000; i++) {
            System.out.println(i);
        }
    }
};
new Thread(r).start();

Enter fullscreen mode Exit fullscreen mode

Com expressões lambda, o código fica mais enxuto:

Runnable r = () -> {
    for (int i = 0; i <= 1000; i++) {
        System.out.println(i);
    }
};
new Thread(r).start();

Enter fullscreen mode Exit fullscreen mode

Ou ainda mais simplificado:

new Thread(() -> {
    for (int i = 0; i <= 1000; i++) {
        System.out.println(i);
    }
}).start();

Enter fullscreen mode Exit fullscreen mode

🔹 O Pacote java.util.function
O Java 8 introduziu o pacote java.util.function, que contém várias interfaces funcionais reutilizáveis, como:

Consumer – executa uma ação com um argumento.
Function – transforma um tipo em outro.
Supplier – fornece um valor sem argumento.
Predicate – retorna um booleano com base em uma condição.

No decorrer do estudo, mais dessas interfaces serão exploradas. 🚀

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay