0

所以我希望通过实现我在FUNF 项目中找到的这个bundletypeadapter来使用 gson 将 bundle 对象转换为 json 。

我的问题是我不完全确定如何正确实现该代码块。目前对我来说有意义的唯一方法会导致循环依赖。

你通常如何实现一个新的 TypeAdapter:

...
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Location.class, new LocationDeserializer());
gsonBuilder.registerTypeAdapter(Location.class, new LocationSerializer());
Gson gson = gsonBuilder.create(); 
...

或者,在这种情况下我会期望什么:

...
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Bundle.class, new BundleTypeAdapter());
Gson gson = gsonBuilder.create();
...

我的问题是 BundleTypeAdapter 拥有的唯一构造函数是 BundleTypeAdapter(Gson gson) ,我不太确定如何传入一个我尚未创建或实例化的对象......

有任何想法吗?

4

1 回答 1

1

Gson 为您描述的情况提供了一个解决方案,TypeAdapterFactory。BundleTypeAdapter 在名为 FACTORY 的静态成员变量中为您定义所需的工厂。要使用它,请致电:

gsonBuilder.registerTypeAdapterFactory(BundleTypeAdapter.FACTORY);
于 2013-01-09T05:27:21.017 回答