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 vastuTtüüpi argumenti ja tagastab boolean väärtuse.// public boolean test(T t);Consumer<T>: Võtab vastuTtüüpi argumenti ja ei tagasta midagi. Teeb toimingu argumenti peal.// public void accept(T t);Supplier<T>: Ei võta argumente ja tagastabTtüüpi väärtuse.// public T get();Function<T, R>: Võtab vastuTtüüpi argumenti ja tagastabRtüü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
}
}