diff --git a/gson/src/main/java/com/google/gson/internal/bind/CollectionTypeAdapter.java b/gson/src/main/java/com/google/gson/internal/bind/CollectionTypeAdapter.java index cceb1f96..01747b51 100644 --- a/gson/src/main/java/com/google/gson/internal/bind/CollectionTypeAdapter.java +++ b/gson/src/main/java/com/google/gson/internal/bind/CollectionTypeAdapter.java @@ -22,8 +22,12 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashSet; +import java.util.LinkedList; import java.util.List; +import java.util.Queue; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; import com.google.gson.internal.$Gson$Types; import com.google.gson.reflect.TypeToken; @@ -53,10 +57,13 @@ public final class CollectionTypeAdapter extends TypeAdapter> { constructorType = ArrayList.class; } else if (rawType == Set.class) { constructorType = LinkedHashSet.class; + } else if (rawType == Queue.class) { + constructorType = LinkedList.class; + } else if (rawType == SortedSet.class) { + constructorType = TreeSet.class; } else { constructorType = rawType; } - // TODO: Queue=LinkedList, SortedSet=TreeSet Constructor constructor = null; try { diff --git a/gson/src/main/java/com/google/gson/internal/bind/MiniGson.java b/gson/src/main/java/com/google/gson/internal/bind/MiniGson.java index 537ad896..79f7a01b 100644 --- a/gson/src/main/java/com/google/gson/internal/bind/MiniGson.java +++ b/gson/src/main/java/com/google/gson/internal/bind/MiniGson.java @@ -166,8 +166,8 @@ public final class MiniGson { return this; } - public Builder typeHierarchyAdapter(Class clazz, TypeAdapter typeAdapter) { - factories.add(TypeAdapters.newTypeHierarchyFactory(clazz, typeAdapter)); + public Builder typeHierarchyAdapter(Class type, TypeAdapter typeAdapter) { + factories.add(TypeAdapters.newTypeHierarchyFactory(type, typeAdapter)); return this; }