我正在构建一个 Android 应用程序,它使用 Gson 从 API 序列化和反序列化对象。这些对象是 POJO,我有一个 APIProvider 类,它由各个提供者为每种类型的对象扩展(例如 ProfileProvider 扩展 APIProvider)。我创建了 APIProvider 泛型类以抽象缓存。
我遇到的问题是泛型类 APIProvider 中的泛型。
如果我使用以下行:
List<T> objects = gson.fromJson(cachedObjects, new TypeToken<List<Profile>>(){}.getType());
然后一切正常。一旦我尝试抽象 Profile 并执行以下操作:
List<T> objects = gson.fromJson(cachedObjects, new TypeToken<List<T>>(){}.getType());
我收到以下错误:
java.lang.ClassCastException: com.google.gson.internal.StringMap cannot be cast to org.buffer.android.core.Profile
任何帮助都是极好的。