@Nullable
    @Contract(value = "null, _ -> null; !null, _ -> !null", pure = true)
    public static TtlRunnable get(@Nullable Runnable runnable, boolean releaseTtlValueReferenceAfterRun) {
        return get(runnable, releaseTtlValueReferenceAfterRun, false);
    }
Factory method, wrap input {@link Runnable} to {@link TtlRunnable}.

@param runnable                         input {@link Runnable}. if input is {@code null}, return {@code null}.
@param releaseTtlValueReferenceAfterRun release TTL value reference after run, avoid memory leak even if {@link TtlRunnable} is referred.
@return Wrapped {@link Runnable}
@throws IllegalStateException when input is {@link TtlRunnable} already.
ttl2-compatible/src/main/java/com/alibaba/ttl/TtlRunnable.java