Capítulo 3.2 e 3.3: Criando Sua Própria Interface Funcional usando anotação

No Java, qualquer interface com um único método abstrato já é considerada uma interface funcional. Isso significa que não é necessário fazer nenhuma alteração para que ela possa ser usada com expressões lambda.

🔹 Criando uma Interface Funcional
Por ex…


This content originally appeared on DEV Community and was authored by FUNDAMENTOS JAVA

No Java, qualquer interface com um único método abstrato já é considerada uma interface funcional. Isso significa que não é necessário fazer nenhuma alteração para que ela possa ser usada com expressões lambda.

🔹 Criando uma Interface Funcional
Por exemplo, suponha que temos a interface Validador que verifica se um dado é válido:

interface Validador<T> {
    boolean valida(T t);
}

Antes do Java 8, precisaríamos de uma classe anônima para instanciar essa interface:

Validador<String> validadorCEP = new Validador<String>() {
    public boolean valida(String valor) {
        return valor.matches("[0-9]{5}-[0-9]{3}");
    }
};

🔹 Expressões Lambda
A partir do Java 8, podemos substituir a classe anônima por uma expressão lambda, tornando o código mais simples:

Validador<String> validadorCEP =
    valor -> {
        return valor.matches("[0-9]{5}-[0-9]{3}");
    };

E podemos reduzir ainda mais, removendo o return, as chaves {} e o ponto e vírgula ;:

Validador<String> validadorCEP =
    valor -> valor.matches("[0-9]{5}-[0-9]{3}");

Agora, a validação do CEP ocupa apenas uma linha! 🚀

🔹 A Anotação @FunctionalInterface
Para evitar que alguém modifique a interface acidentalmente, podemos usar a anotação @FunctionalInterface:

@FunctionalInterface
interface Validador<T> {
    boolean valida(T t);
}

Se tentarmos adicionar um segundo método abstrato, o compilador gera um erro:

@FunctionalInterface
interface Validador<T> {
    boolean valida(T t);
    boolean outroMetodo(T t); // ❌ ERRO!
}

Erro gerado:

java: Unexpected @FunctionalInterface annotation
Validador is not a functional interface
multiple non-overriding abstract methods found in interface

A anotação não é obrigatória, mas garante que a interface continue sendo funcional no futuro.

📌 Conclusão
Interfaces com um único método abstrato são automaticamente funcionais.
Podem ser instanciadas com expressões lambda em vez de classes anônimas.
A anotação @FunctionalInterface protege a interface contra modificações acidentais.
Esse recurso torna o código mais legível, curto e eficiente! 🚀


This content originally appeared on DEV Community and was authored by FUNDAMENTOS JAVA


Print Share Comment Cite Upload Translate Updates
APA

FUNDAMENTOS JAVA | Sciencx (2025-02-22T17:40:26+00:00) Capítulo 3.2 e 3.3: Criando Sua Própria Interface Funcional usando anotação. Retrieved from https://www.scien.cx/2025/02/22/capitulo-3-2-e-3-3-criando-sua-propria-interface-funcional-usando-anotacao/

MLA
" » Capítulo 3.2 e 3.3: Criando Sua Própria Interface Funcional usando anotação." FUNDAMENTOS JAVA | Sciencx - Saturday February 22, 2025, https://www.scien.cx/2025/02/22/capitulo-3-2-e-3-3-criando-sua-propria-interface-funcional-usando-anotacao/
HARVARD
FUNDAMENTOS JAVA | Sciencx Saturday February 22, 2025 » Capítulo 3.2 e 3.3: Criando Sua Própria Interface Funcional usando anotação., viewed ,<https://www.scien.cx/2025/02/22/capitulo-3-2-e-3-3-criando-sua-propria-interface-funcional-usando-anotacao/>
VANCOUVER
FUNDAMENTOS JAVA | Sciencx - » Capítulo 3.2 e 3.3: Criando Sua Própria Interface Funcional usando anotação. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/02/22/capitulo-3-2-e-3-3-criando-sua-propria-interface-funcional-usando-anotacao/
CHICAGO
" » Capítulo 3.2 e 3.3: Criando Sua Própria Interface Funcional usando anotação." FUNDAMENTOS JAVA | Sciencx - Accessed . https://www.scien.cx/2025/02/22/capitulo-3-2-e-3-3-criando-sua-propria-interface-funcional-usando-anotacao/
IEEE
" » Capítulo 3.2 e 3.3: Criando Sua Própria Interface Funcional usando anotação." FUNDAMENTOS JAVA | Sciencx [Online]. Available: https://www.scien.cx/2025/02/22/capitulo-3-2-e-3-3-criando-sua-propria-interface-funcional-usando-anotacao/. [Accessed: ]
rf:citation
» Capítulo 3.2 e 3.3: Criando Sua Própria Interface Funcional usando anotação | FUNDAMENTOS JAVA | Sciencx | https://www.scien.cx/2025/02/22/capitulo-3-2-e-3-3-criando-sua-propria-interface-funcional-usando-anotacao/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.