Sobes.tech
Middle

Čo viete o funkčných rozhraniach v Jave 8 a novších verziách?

sobes.tech AI

Odpoveď od AI

Funkčné rozhranie je rozhranie, ktoré obsahuje iba jednu abstraktnú metódu. Používa sa na implementáciu lambda výrazov a odkazov na metódy. Môžu mať predvolené a statické metódy.

Príklady zabudovaných funkčných rozhraní v balíku java.util.function:

  • Predicate<T>: Prijíma argument typu T a vracia hodnotu boolean.
    // public boolean test(T t);
    
  • Consumer<T>: Prijíma argument typu T a nevracia nič. Vykonáva akciu nad argumentom.
    // public void accept(T t);
    
  • Supplier<T>: Neprijíma argumenty a vracia hodnotu typu T.
    // public T get();
    
  • Function<T, R>: Prijíma argument typu T a vracia hodnotu typu R.
    // public R apply(T t);
    

Anotácia @FunctionalInterface je voliteľná, ale odporúča sa na kontrolu zo strany kompilátora a pre jasnosť.

@FunctionalInterface
interface MyFunction {
    String process(String input);
    
    default void doNothing() {
        // Predvolená metóda
    }
}