code: @Nonnull
      public static <T> List<TtlCallable<T>> gets(@Nullable Collection<? extends Callable<T>> tasks, boolean releaseTtlValueReferenceAfterCall, boolean idempotent) {
          if (null == tasks) return Collections.emptyList();
  
          List<TtlCallable<T>> copy = new ArrayList<TtlCallable<T>>();
          for (Callable<T> task : tasks) {
              copy.add(TtlCallable.get(task, releaseTtlValueReferenceAfterCall, idempotent));
          }
          return copy;
      }
docs: wrap input {@link Callable} Collection to {@link TtlCallable} Collection.
  
  @param tasks                             task to be wrapped
  @param releaseTtlValueReferenceAfterCall release TTL value reference after run, avoid memory leak even if {@link TtlRunnable} is referred.
  @param idempotent                        is idempotent or not. {@code true} will cover up bugs! <b>DO NOT</b> set, only when you know why.
  @return Wrapped {@link Callable}