Junior — Middle
Kuidas määratleda Java funktsionaalsele liidesele vastavainsa interfeisi ainus abstraktne meetod?
sobes.tech AI
Vastus AI-lt
Java funktsionaalne liides on liides, mis sisaldab täpselt ühte abstraktset meetodit (SAM — Single Abstract Method). Selle meetodi määratlemiseks tuleb veenduda, et liideses on ainult üks meetod ilma rakenduseta.
Näide:
@FunctionalInterface
public interface MyFunctionalInterface {
void execute(); // ainus abstraktne meetod
// Võid lisada meetodeid vaikimisi rakendusega
default void log() {
System.out.println("Logging...");
}
}
@FunctionalInterface annotatsioon ei ole kohustuslik, kuid soovitatav, kuna kompilaator kontrollib, kas liides on tõesti funktsionaalne.
Seega, ainus abstraktne meetod on see ilma kehasid, mis määratleb liidese lepingu, ja kõik teised meetodid või puuduvad, või on vaikimisi rakendusega või on statilised.