Sobes.tech
Junior — Middle

Hogyan határozható meg az egyetlen absztrakt metódus egy olyan interfészben, amely megfelel egy funkcionális interfésznek Java-ban?

sobes.tech MI

Válasz az MI-től

Java-ban a funkcionális interfész olyan interfész, amely pontosan egy absztrakt metódust tartalmaz (SAM — Single Abstract Method). Az ilyen metódus meghatározásához biztosítani kell, hogy az interfészben csak egy metódus legyen implementáció nélkül.

Példa:

@FunctionalInterface
public interface MyFunctionalInterface {
    void execute(); // egyetlen absztrakt metódus

    // Alapértelmezett implementációval rendelkező metódusokat lehet hozzáadni
    default void log() {
        System.out.println("Logging...");
    }
}

A @FunctionalInterface annotáció nem kötelező, de ajánlott, mivel a fordító ellenőrzi, hogy az interfész valóban funkcionális-e.

Így az egyetlen absztrakt metódus a test nélküli metódus, amely meghatározza az interfész szerződését, és minden más metódus vagy hiányzik, vagy alapértelmezett implementációval vagy statikus.