Gson を使用して API からオブジェクトをシリアル化および逆シリアル化する Android アプリを構築しています。オブジェクトは POJO であり、オブジェクトのタイプごとに個々のプロバイダーによって拡張される APIProvider クラスがあります (たとえば、ProfileProvider は APIProvider を拡張します)。キャッシングを抽象化するために、APIProvider ジェネリック クラスを作成しました。
私が抱えている問題は、ジェネリック クラス APIProvider のジェネリックにあります。
次の行を使用する場合:
List<T> objects = gson.fromJson(cachedObjects, new TypeToken<List<Profile>>(){}.getType());
その後、すべてが正しく機能します。プロファイルを抽象化して次のことをしようとするとすぐに:
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
どんな助けでも素晴らしいでしょう。