code: private static String wildcardTypeParametersString(TypeElement type) {
      List<? extends TypeParameterElement> typeParameters = type.getTypeParameters();
      if (typeParameters.isEmpty()) {
        return "";
      } else {
        return typeParameters.stream().map(e -> "?").collect(joining(", ", "<", ">"));
      }
    }
docs: Returns the {@code @AutoValue} or {@code @AutoOneOf} type parameters, with a ? for every type.
  If we have {@code @AutoValue abstract class Foo<T extends Something>} then this method will
  return just {@code <?>}.