Interface ThrowingSupplier<T>

Type Parameters:
T - the type of results supplied by this supplier
All Superinterfaces:
Supplier<T>
All Known Subinterfaces:
InstanceSupplier<T>
All Known Implementing Classes:
BeanInstanceSupplier

public interface ThrowingSupplier<T> extends Supplier<T>
A Supplier that allows invocation of code that throws a checked exception.
Since:
6.0
Author:
Stephane Nicoll, Phillip Webb
  • Method Details

    • getWithException

      T getWithException() throws Exception
      Gets a result, possibly throwing a checked exception.
      Returns:
      a result
      Throws:
      Exception - on error
    • get

      default T get()
      Default Supplier.get() that wraps any thrown checked exceptions (by default in a RuntimeException).
      Specified by:
      get in interface Supplier<T>
      See Also:
    • get

      default T get(BiFunction<String,Exception,RuntimeException> exceptionWrapper)
      Gets a result, wrapping any thrown checked exceptions using the given exceptionWrapper.
      Parameters:
      exceptionWrapper - BiFunction that wraps the given message and checked exception into a runtime exception
      Returns:
      a result
    • throwing

      default ThrowingSupplier<T> throwing(BiFunction<String,Exception,RuntimeException> exceptionWrapper)
      Return a new ThrowingSupplier where the get() method wraps any thrown checked exceptions using the given exceptionWrapper.
      Parameters:
      exceptionWrapper - BiFunction that wraps the given message and checked exception into a runtime exception
      Returns:
      the replacement ThrowingSupplier instance
    • of

      static <T> ThrowingSupplier<T> of(ThrowingSupplier<T> supplier)
      Lambda friendly convenience method that can be used to create a ThrowingSupplier where the get() method wraps any checked exception thrown by the supplied lambda expression or method reference.

      This method can be especially useful when working with method references. It allows you to easily convert a method that throws a checked exception into an instance compatible with a regular Supplier.

      For example:

       optional.orElseGet(ThrowingSupplier.of(Example::methodThatCanThrowCheckedException));
       
      Type Parameters:
      T - the type of results supplied by this supplier
      Parameters:
      supplier - the source supplier
      Returns:
      a new ThrowingSupplier instance
    • of

      static <T> ThrowingSupplier<T> of(ThrowingSupplier<T> supplier, BiFunction<String,Exception,RuntimeException> exceptionWrapper)
      Lambda friendly convenience method that can be used to create ThrowingSupplier where the get() method wraps any thrown checked exceptions using the given exceptionWrapper.

      This method can be especially useful when working with method references. It allows you to easily convert a method that throws a checked exception into an instance compatible with a regular Supplier.

      For example:

       optional.orElseGet(ThrowingSupplier.of(Example::methodThatCanThrowCheckedException, IllegalStateException::new));
       
      Type Parameters:
      T - the type of results supplied by this supplier
      Parameters:
      supplier - the source supplier
      exceptionWrapper - the exception wrapper to use
      Returns:
      a new ThrowingSupplier instance