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 super T> 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);
* }