所以我希望通过实现我在bundletypeadapter中找到的FUNF project来使用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),我不太确定如何传递我尚未创建或实例化的对象......
任何想法?
答案 0 :(得分:1)
Gson为您描述的案例TypeAdapterFactory提供了解决方案。 BundleTypeAdapter在名为FACTORY的静态成员变量中为您定义所需的工厂。要使用它,请致电:
gsonBuilder.registerTypeAdapterFactory(BundleTypeAdapter.FACTORY);