Class LambdaSafe

java.lang.Object
io.spring.initializr.generator.spring.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
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
    Represents a single callback that can be invoked in a lambda safe way.
    static final class 
    Represents a collection of callbacks that can be invoked in a lambda safe way.
    static final class 
    The result of a callback which may be a value, null or absent entirely if the callback wasn't suitable.
  • Method Summary

    Modifier and Type
    Method
    Description
    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.
    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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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.