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