Требуется дополнительная информация о различиях между javaslang Try.of() и Try.run()
Try.of()
Try.run()
Например,
Try.of(() -> Integer.valueOf(str)).getOrElse(1) компилируется нормально, а Try.run(() -> Integer.valueOf(str)).getOrElse(1) - нет.
Try.of(() -> Integer.valueOf(str)).getOrElse(1)
Try.run(() -> Integer.valueOf(str)).getOrElse(1)
найдено в упаковке javaslang.control. Подробнее о библиотеке:
javaslang.control
Try.of() принимает CheckedSupplier, у которого есть метод get() для «получения результата».
CheckedSupplier
get()
Try.run() принимает CheckedRunnable, у которого есть метод void run() для «выполнения побочных эффектов».
CheckedRunnable
void run()
Так сказано прямо в документации .
Разница такая же, как и между стандартными Java Supplier («представляет поставщика результатов») и Runnable («выполнить код ... может выполнять любое действие») . Один предназначен для получения значения , другой - для выполнения некоторого кода .
Supplier
Runnable
Примеры различий в использовании см .:
andThenTry(CheckedConsumer<? super T> consumer)
Try.of(() -> 100) .andThen(i -> System.out.println(i));
andThenTry(CheckedRunnable runnable)
Try.run(A::methodRef) .andThen(B::methodRef) .andThen(C::methodRef);