diff --git a/gson/src/main/java/com/google/gson/TypeAdapterFactory.java b/gson/src/main/java/com/google/gson/TypeAdapterFactory.java index cf40fc1832..b75452e623 100644 --- a/gson/src/main/java/com/google/gson/TypeAdapterFactory.java +++ b/gson/src/main/java/com/google/gson/TypeAdapterFactory.java @@ -105,13 +105,15 @@ *
{@code
  * public class MultisetTypeAdapterFactory implements TypeAdapterFactory {
  *   public  TypeAdapter create(Gson gson, TypeToken typeToken) {
- *     Type type = typeToken.getType();
- *     if (typeToken.getRawType() != Multiset.class
- *         || !(type instanceof ParameterizedType)) {
+ *     Class rawType = typeToken.getRawType();
+ *     if (!Multiset.class.isAssignableFrom(rawType)) {
  *       return null;
  *     }
  *
- *     Type elementType = ((ParameterizedType) type).getActualTypeArguments()[0];
+ *     Type type = typeToken.getType();
+ *     Type elementType = type instanceof ParameterizedType
+ *         ? ((ParameterizedType) type).getActualTypeArguments()[0]
+ *         : Object.class; // no type information, e.g. an ImmutableMultiset without generics
  *     TypeAdapter elementAdapter = gson.getAdapter(TypeToken.get(elementType));
  *     return (TypeAdapter) newMultisetAdapter(elementAdapter);
  *   }