org.springframework.boot.util

Class 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 Detail

      • 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.