@Nullable
    @SuppressWarnings("unchecked")
    public static <T extends Executor> T unwrap(@Nullable T executor) {
        if (!isTtlWrapper(executor)) return executor;

        return (T) ((ExecutorTtlWrapper) executor).unwrap();
    }
@ Nullable @ SuppressWarnings ( "unchecked" ) public static < T extends Executor > T unwrap ( @ Nullable T executor ) { if ( ! isTtlWrapper ( executor ) ) return executor ; return ( T ) ( ( ExecutorTtlWrapper ) executor ) . unwrap ( ) ; }
Unwrap TTL wrapper executor to the original/underneath one.
<p>
if the parameter executor is TTL wrapper, return the original/underneath executor;
otherwise, just return the input parameter executor.
<p>
NOTE: if input executor is {@code null}, return {@code null}.

@param executor input executor
@param <T>      Executor type
@see #getTtlExecutor(Executor)
@see #getTtlExecutorService(ExecutorService)
@see #getTtlScheduledExecutorService(ScheduledExecutorService)
@see #isTtlWrapper(Executor)
@since 2.8.0