diff --git a/extras/src/main/java/com/google/gson/mini/MiniGson.java b/extras/src/main/java/com/google/gson/mini/MiniGson.java index 38c70d78..47b99e68 100644 --- a/extras/src/main/java/com/google/gson/mini/MiniGson.java +++ b/extras/src/main/java/com/google/gson/mini/MiniGson.java @@ -56,10 +56,10 @@ public final class MiniGson { factories.add(TypeAdapters.DOUBLE_FACTORY); factories.add(TypeAdapters.LONG_FACTORY); factories.add(TypeAdapters.STRING_FACTORY); - factories.add(ReflectiveTypeAdapter.FACTORY); factories.add(CollectionTypeAdapter.FACTORY); factories.add(StringToValueMapTypeAdapter.FACTORY); factories.add(ArrayTypeAdapter.FACTORY); + factories.add(ReflectiveTypeAdapter.FACTORY); this.factories = Collections.unmodifiableList(factories); } diff --git a/extras/src/main/java/com/google/gson/mini/ReflectiveTypeAdapter.java b/extras/src/main/java/com/google/gson/mini/ReflectiveTypeAdapter.java index 4f1c40f5..04d416be 100644 --- a/extras/src/main/java/com/google/gson/mini/ReflectiveTypeAdapter.java +++ b/extras/src/main/java/com/google/gson/mini/ReflectiveTypeAdapter.java @@ -56,6 +56,7 @@ final class ReflectiveTypeAdapter extends TypeAdapter { Map> result = new LinkedHashMap>(); while (raw != Object.class) { for (Field field : raw.getDeclaredFields()) { + field.setAccessible(true); // TODO: don't call setAccessible unless necessary Type fieldType = $Gson$Types.resolve(type.getType(), raw, field.getGenericType()); BoundField boundField = BoundField.create(context, field, TypeToken.get(fieldType)); result.put(boundField.name, boundField);