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.