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é.