Middle
Какво знаете за функционалните интерфейси в Java 8 и по-нови версии?
sobes.tech AI
Отговор от AI
Функционалният интерфейс е интерфейс, който съдържа само един абстрактен метод. Те се използват за реализиране на ламбда изрази и препратки към методи. Могат да имат дефолтни и статични методи.
Примери за вградени функционални интерфейси в пакета java.util.function:
Predicate<T>: Приема аргумент от типTи връща булева стойност.// public boolean test(T t);Consumer<T>: Приема аргумент от типTи не връща нищо. Извършва действие върху аргумента.// public void accept(T t);Supplier<T>: Не приема аргументи и връща стойност от типT.// public T get();Function<T, R>: Приема аргумент от типTи връща стойност от типR.// public R apply(T t);
Анотацията @FunctionalInterface е опционална, но се препоръчва за проверка от компилатора и за яснота.
@FunctionalInterface
interface MyFunction {
String process(String input);
default void doNothing() {
// Метод по подразбиране
}
}