Class LambdaSafe

java.lang.Object
org.springframework.boot.util.LambdaSafe

public final class LambdaSafe extends Object
Utility that can be used to invoke lambdas in a safe way. Primarily designed to help support generically typed callbacks where class cast exceptions need to be dealt with due to class erasure.
Since:
2.0.0
Author:
Phillip Webb
  • Method Details

    • callback

      public static <C, A> LambdaSafe.Callback<C,A> callback(Class<C> callbackType, C callbackInstance, A argument, Object... additionalArguments)
      Start a call to a single callback instance, dealing with common generic type concerns and exceptions.
      Type Parameters:
      C - the callback type
      A - the primary argument type
      Parameters:
      callbackType - the callback type (a functional interface)
      callbackInstance - the callback instance (may be a lambda)
      argument - the primary argument passed to the callback
      additionalArguments - any additional arguments passed to the callback
      Returns:
      a LambdaSafe.Callback instance that can be invoked.
    • callbacks

      public static <C, A> LambdaSafe.Callbacks<C,A> callbacks(Class<C> callbackType, Collection<? extends C> callbackInstances, A argument, Object... additionalArguments)
      Start a call to callback instances, dealing with common generic type concerns and exceptions.
      Type Parameters:
      C - the callback type
      A - the primary argument type
      Parameters:
      callbackType - the callback type (a functional interface)
      callbackInstances - the callback instances (elements may be lambdas)
      argument - the primary argument passed to the callbacks
      additionalArguments - any additional arguments passed to the callbacks
      Returns:
      a LambdaSafe.Callbacks instance that can be invoked.