В java.util.function
пакете Java 8 мы имеем:
- Функция : принимает один аргумент, выдает один результат.
- Потребитель : принимает один аргумент, ничего не производит.
- Поставщик : не принимает аргументов, дает один результат.
- ... : другие случаи обработки примитивов, двух аргументов и т. Д.
Но мне нужно разобраться с делом «не принимает аргументов, ничего не производит ».
Там нет ничего для этого в java.util.functionnal
.
Итак, вопрос в следующем:
Как называется « функция, которая не принимает аргументов и ничего не возвращает »?
В Java 8 его определение будет следующим:
@FunctionalInterface
public interface InsertANameHere {
void execute();
}
Исполнитель уже существует и имеет другое назначение: « Объект, выполняющий отправленные выполняемые задачи ». Подпись не соответствует ( execute(Runnable):void
) и даже не является функциональным интерфейсом .
Runnable существует, но он тесно связан с контекстом потоков:
- Пакет есть
java.lang
, нетjava.util.function
. - Javadoc заявляет: « Интерфейс Runnable должен быть реализован любым классом, экземпляры которого предназначены для выполнения потоком ».
- Название «Runnable» указывает на некоторый работающий код внутри потока.
Runnable
является устаревшим в этой точке, потому что Runnable также используется другими классами, чем Thread
( Executor
например).
Runnable
s может быть .run()
только Thread
s. На самом деле они очень часто используются именно для цели, описанной в вопросе
java.util.function
упаковке.