Package org.springframework.boot.util
Class LambdaSafe
java.lang.Object
org.springframework.boot.util.LambdaSafe
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
Modifier and TypeClassDescriptionstatic 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.protected static class
Abstract base class for lambda safe callbacks. -
Method Summary
Modifier and TypeMethodDescriptionstatic <C,
A> LambdaSafe.Callback<C, A> 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.
-
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 typeA
- the primary argument type- Parameters:
callbackType
- the callback type (afunctional interface
)callbackInstance
- the callback instance (may be a lambda)argument
- the primary argument passed to the callbackadditionalArguments
- 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 typeA
- the primary argument type- Parameters:
callbackType
- the callback type (afunctional interface
)callbackInstances
- the callback instances (elements may be lambdas)argument
- the primary argument passed to the callbacksadditionalArguments
- any additional arguments passed to the callbacks- Returns:
- a
LambdaSafe.Callbacks
instance that can be invoked.
-