Sobes.tech
Middle

O que sabe sobre interfaces funcionais no Java 8 e superiores?

sobes.tech IA

Resposta da IA

A interface funcional é uma interface que contém apenas um método abstrato. Elas são usadas para implementar expressões lambda e referências de método. Podem ter métodos default e static.

Exemplos de interfaces funcionais integradas no pacote java.util.function:

  • Predicate<T>: Aceita um argumento do tipo T e retorna um valor booleano.
    // public boolean test(T t);
    
  • Consumer<T>: Aceita um argumento do tipo T e não retorna nada. Executa uma ação sobre o argumento.
    // public void accept(T t);
    
  • Supplier<T>: Não aceita argumentos e retorna um valor do tipo T.
    // public T get();
    
  • Function<T, R>: Aceita um argumento do tipo T e retorna um valor do tipo R.
    // public R apply(T t);
    

A anotação @FunctionalInterface é opcional, mas recomendada para verificação pelo compilador e maior clareza.

@FunctionalInterface
interface MyFunction {
    String process(String input);
    
    default void doNothing() {
        // Método padrão
    }
}