Sobes.tech
Junior — Middle

Jak określić jedyną abstrakcyjną metodę w interfejsie odpowiadającym interfejsowi funkcyjnemu w Java?

sobes.tech AI

Odpowiedź od AI

W Javie interfejs funkcyjny to interfejs, który zawiera dokładnie jedną metodę abstrakcyjną (SAM — Single Abstract Method). Aby zdefiniować taką metodę, należy upewnić się, że w interfejsie jest tylko jedna metoda bez implementacji.

Przykład:

@FunctionalInterface
public interface MyFunctionalInterface {
    void execute(); // jedyna metoda abstrakcyjna

    // Można dodać metody z domyślną implementacją
    default void log() {
        System.out.println("Logging...");
    }
}

Adnotacja @FunctionalInterface nie jest obowiązkowa, ale jest zalecana, ponieważ kompilator sprawdzi, czy interfejs jest rzeczywiście funkcyjny.

W ten sposób, jedyna metoda abstrakcyjna to ta bez ciała, która określa kontrakt interfejsu, a wszystkie pozostałe metody albo nie istnieją, albo mają domyślną implementację albo są statyczne.