code: private static Type[] getImplicitBounds(final TypeVariable<?> typeVariable) {
          Assert.requireNonNull(typeVariable, "typeVariable");
          final Type[] bounds = typeVariable.getBounds();
  
          return bounds.length == 0 ? new Type[]{Object.class} : normalizeUpperBounds(bounds);
      }
docs: <p>Returns an array containing the sole type of {@link Object} if
  {@link TypeVariable#getBounds()} returns an empty array. Otherwise, it
  returns the result of {@link TypeVariable#getBounds()} passed into
  {@link #normalizeUpperBounds}.</p>
  
  @param typeVariable the subject type variable, not {@code null}
  @return a non-empty array containing the bounds of the type variable.