code: public static Type refine(Type type, Type parentType) {
          if (type instanceof TypeVariable) {
              return TypeUtils.normalizeUpperBounds(((TypeVariable<?>) type).getBounds())[0];
          }
          if (type instanceof WildcardType) {
              return TypeUtils.normalizeUpperBounds(((WildcardType) type).getUpperBounds())[0];
          }
          return type;
      }
docs: "Refine" a declared type:
  <ul>
  <li>If {@code type} is a {@link TypeVariable}, return its normalized upper bound.</li>
  <li>If {@code type} is a {@link WildcardType}, return its normalized upper bound.</li>
  </ul>
  
  @param type
  @param parentType
  @return Type