Sobes.tech
Junior — Middle

Ako určiť jedinú abstraktnú metódu v rozhraní, ktoré zodpovedá funkčnému rozhraniu v Jave?

sobes.tech AI

Odpoveď od AI

Vo Jave je funkčný rozhranie rozhranie, ktoré obsahuje presne jednu abstraktnú metódu (SAM — Single Abstract Method). Aby ste mohli takúto metódu definovať, musíte sa uistiť, že v rozhraní je iba jedna metóda bez implementácie.

Príklad:

@FunctionalInterface
public interface MyFunctionalInterface {
    void execute(); // jediná abstraktná metóda

    // Môžete pridať metódy s predvolenou implementáciou
    default void log() {
        System.out.println("Logging...");
    }
}

Anotácia @FunctionalInterface nie je povinná, ale odporúča sa, pretože prekladač skontroluje, či je rozhranie naozaj funkčné.

Takže, jediná abstraktná metóda je tá bez tela, ktorá definuje zmluvu rozhrania, a všetky ostatné metódy buď chýbajú, alebo majú predvolenú implementáciu alebo sú statické.