Junior — Middle
Je možné definovať rozhranie bez anotácie @FunctionalInterface ako funkčné rozhranie?
sobes.tech AI
Odpoveď od AI
Anotácia @FunctionalInterface v Jave nie je povinná na to, aby rozhranie bolo považované za funkčné. Hlavnou podmienkou je, že rozhranie musí obsahovať presne jednu abstraktnú metódu.
Anotácia slúži na jasné označenie a kontrolu tohto faktu kompilátorom, ale aj bez nej je možné použiť rozhranie s jednou abstraktnou metódou v lambda výrazoch a metódach, ktoré očakávajú funkčné rozhranie.
Príklad:
interface MyFunction {
void apply(); // jediná abstraktná metóda
}
MyFunction f = () -> System.out.println("Hello");
f.apply();
Tu je MyFunction funkčné rozhranie bez anotácie.