code: @SafeVarargs
    public static <T> ExpectedSubtypesAdapter<T> create(
        Gson gson,
        TypeToken<T> type,
        TypeToken<? extends T>... subtypes) {
      return new ExpectedSubtypesAdapter<>(gson, type, subtypes);
    }
docs: Creates adapter from {@link Gson} and type tokens.
  @param <T> the generic type
  @param gson Gson instance
  @param type supertype token
  @param subtypes subtype tokens
  @return subtype adapter