Sobes.tech
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.