Sobes.tech
Middle

Mida teate Java 8 ja uuemate versioonide funktsionaalsetest liidestest?

sobes.tech AI

Vastus AI-lt

Funktsionaalne liides on liides, mis sisaldab ainult ühte abstraktset meetodit. Seda kasutatakse lambda-väljendite ja meetodiviidete rakendamiseks. Neil võivad olla vaikimisi ja staatilised meetodid.

Näited sisseehitatud funktsionaalsetest liidestest paketis java.util.function:

  • Predicate<T>: Võtab vastu T tüüpi argumenti ja tagastab boolean väärtuse.
    // public boolean test(T t);
    
  • Consumer<T>: Võtab vastu T tüüpi argumenti ja ei tagasta midagi. Teeb toimingu argumenti peal.
    // public void accept(T t);
    
  • Supplier<T>: Ei võta argumente ja tagastab T tüüpi väärtuse.
    // public T get();
    
  • Function<T, R>: Võtab vastu T tüüpi argumenti ja tagastab R tüüpi väärtuse.
    // public R apply(T t);
    

@FunctionalInterface märgistus on valikuline, kuid soovitatav kompilaatori kontrollimiseks ja selguse huvides.

@FunctionalInterface
interface MyFunction {
    String process(String input);
    
    default void doNothing() {
        // Vaikimisi meetod
    }
}