code: @Nullable
      public static TtlRunnable get(@Nullable Runnable runnable, boolean releaseTtlValueReferenceAfterRun, boolean idempotent) {
          if (null == runnable) return null;
  
          if (runnable instanceof TtlEnhanced) {
              // avoid redundant decoration, and ensure idempotency
              if (idempotent) return (TtlRunnable) runnable;
              else throw new IllegalStateException("Already TtlRunnable!");
          }
          return new TtlRunnable(runnable, releaseTtlValueReferenceAfterRun);
      }
docs: 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.
  @param idempotent                       is idempotent mode or not. if {@code true}, just return input {@link Runnable} when it's {@link TtlRunnable},
  otherwise throw {@link IllegalStateException}.
  <B><I>Caution</I></B>: {@code true} will cover up bugs! <b>DO NOT</b> set, only when you know why.
  @return Wrapped {@link Runnable}
  @throws IllegalStateException when input is {@link TtlRunnable} already and not idempotent.