docs: 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;
      }