Java · Intermediário · Português · Técnico
interface funcional
Interface com exatamente um método abstrato, que pode ser implementada por lambda ou referência de método. A anotação @FunctionalInterface faz o compilador conferir.
Onde usar
Aparece em Runnable, Comparator, Function e Predicate, e em APIs próprias para receber comportamento como parâmetro.
Em código
@FunctionalInterface
interface Validador<T> {
boolean validar(T valor);
default Validador<T> negar() {
return v -> !validar(v);
}
}
Validador<String> vazio = String::isEmpty;Exemplos
Cria uma interface funcional para passar a regra de validação.
Essa interface tem dois métodos abstratos, então não aceita lambda.
Cuidado
Ter métodos default ou static não a desqualifica, pois só os abstratos contam; mas dois métodos abstratos impedem o uso de lambda.
Sinônimos
functional interface