Sobes.tech
Middle

Ce știți despre interfețele funcționale în Java 8 și versiunile ulterioare?

sobes.tech AI

Răspuns de la AI

Interfața funcțională este o interfață care conține doar o metodă abstractă. Sunt utilizate pentru implementarea expresiilor lambda și a referințelor la metode. Pot avea metode default și static.

Exemple de interfețe funcționale integrate în pachetul java.util.function:

  • Predicate<T>: Primește un argument de tip T și returnează o valoare booleană.
    // public boolean test(T t);
    
  • Consumer<T>: Primește un argument de tip T și nu returnează nimic. Execută o acțiune asupra argumentului.
    // public void accept(T t);
    
  • Supplier<T>: Nu primește argumente și returnează o valoare de tip T.
    // public T get();
    
  • Function<T, R>: Primește un argument de tip T și returnează o valoare de tip R.
    // public R apply(T t);
    

Atributul @FunctionalInterface este opțional, dar este recomandat pentru verificare de către compilator și pentru claritate.

@FunctionalInterface
interface MyFunction {
    String process(String input);
    
    default void doNothing() {
        // Metodă implicită
    }
}