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