CompletableFuture использует Supplier вместо Callable?

185
30 марта 2018, 12:34

Почему completableFuture использует вместо привычного callable supplier, зачем так путать людей привыкших к старому доброму callable?

Answer 1

CompletableFuture относится к Java8, а там было внедрены зачатки функционального программирования. Собстенно CompletableFuture может быть расмотренно как монада.

Ну а в функциональном программировании Supplier более знакомое слово, нежели Callable, вот и все + держит общий стандарт. Ведь если бы было наоборот, тоже было бы запутанно, везде Supplier, а тут бац, Callable.

Вторая разница что Callable может бросать исключение, а Supplier нет (Ну разве что RuntimeException). Почему так, сложно сказать.

Answer 2

Если посмотреть API, то видно, что данный класс веден с 1.8, следовательно его сразу спроектировали для использования с лямбда-выражениями.

READ ALSO
Java sqlite jdbc и другое

Java sqlite jdbc и другое

Собрал в jar проект, который работает с файлами sqlite (выполняется просто запрос "select id from user")На компьютере, где все собирал, все прекрасно работает

127
Чтение массива чисел

Чтение массива чисел

Есть InputStream в котором записана последовательность известной длины 32 битных чисел в LittleEndian порядке байт

152