Я не видел ни одной темы, возникающей при использовании Callable.Но можно ли использовать Callable вместо поставщика.
Как уже упоминалось в комментариях, и Callable
, и Supplier
являются интерфейсами, которые имеют один и тот же дескриптор функции, т.е. их SAM (Single Abstract Method)одинаковы в своих подписях.
Разница лишь в том, что Callable#call
может генерировать проверенные исключения, с другой стороны, Supplier#get
нет.
Это означает, что для вашего случая использования использование любого из них вполне приемлемо, хотя, как уже упоминалось в , этот ответ
Хотя в данном конкретном случае достаточно обоих интерфейсов, онипредназначен для разных целей, например, Callable - «Задача, которая возвращает результат», а Поставщик - «поставщик результатов».Последний является более «общим» в отличие от первого.
Итак, вывод заключается в том, чтобы выбрать тот, который больше всего подходит для вашего конкретного сценария.