Sobes.tech
Middle
151

Co wiesz o interfejsach funkcyjnych w Java 8 i nowszych?

Odpowiedź od AI

sobes.tech AI

Interfejs funkcyjny to interfejs zawierający tylko jedną metodę abstrakcyjną. Są używane do implementacji wyrażeń lambda i odwołań do metod. Mogą mieć metody domyślne i statyczne.

Przykłady wbudowanych interfejsów funkcyjnych w pakiecie java.util.function:

  • Predicate<T>: Przyjmuje argument typu T i zwraca wartość boolean.
    // public boolean test(T t);
    
  • Consumer<T>: Przyjmuje argument typu T i nic nie zwraca. Wykonuje akcję na argumencie.
    // public void accept(T t);
    
  • Supplier<T>: Nie przyjmuje argumentów i zwraca wartość typu T.
    // public T get();
    
  • Function<T, R>: Przyjmuje argument typu T i zwraca wartość typu R.
    // public R apply(T t);
    

Adnotacja @FunctionalInterface jest opcjonalna, ale zalecana do sprawdzania przez kompilator i dla jasności.

@FunctionalInterface
interface MyFunction {
    String process(String input);
    
    default void doNothing() {
        // Metoda domyślna
    }
}