Sobes.tech
Middle
145

Cosa sa delle interfacce funzionali in Java 8 e versioni successive?

Risposta dell'AI

sobes.tech AI

L'interfaccia funzionale è un'interfaccia che contiene solo un metodo astratto. Sono utilizzate per implementare espressioni lambda e riferimenti a metodi. Possono avere metodi default e statici.

Esempi di interfacce funzionali integrate nel pacchetto java.util.function:

  • Predicate<T>: Accetta un argomento di tipo T e restituisce un valore booleano.
    // public boolean test(T t);
    
  • Consumer<T>: Accetta un argomento di tipo T e non restituisce nulla. Esegue un'azione sull'argomento.
    // public void accept(T t);
    
  • Supplier<T>: Non accetta argomenti e restituisce un valore di tipo T.
    // public T get();
    
  • Function<T, R>: Accetta un argomento di tipo T e restituisce un valore di tipo R.
    // public R apply(T t);
    

L'annotazione @FunctionalInterface è opzionale, ma consigliata per la verifica da parte del compilatore e per chiarezza.

@FunctionalInterface
interface MyFunction {
    String process(String input);
    
    default void doNothing() {
        // Metodo di default
    }
}