Android 对派生类使用ustom GSON反序列化器

Android 对派生类使用ustom GSON反序列化器,android,json,gson,Android,Json,Gson,我想创建一些抽象,这样可以减少重复代码的数量 简单示例(我的真实对象要复杂得多-这就是为什么我要手动解析它,但B和C都与a共享大量数据): 我已经编写了两个自定义反序列化程序,它们都是从某个抽象反序列化程序派生出来的,该反序列化程序将负责填充基类的x和y,然后它将根据特定类填充字段 gsonBuilder.registerTypeAdapter(B.class, new BsonDeserializer()); gsonBuilder.registerTypeAdapter(C.class, n

我想创建一些抽象,这样可以减少重复代码的数量

简单示例(我的真实对象要复杂得多-这就是为什么我要手动解析它,但B和C都与a共享大量数据):

我已经编写了两个自定义反序列化程序,它们都是从某个抽象反序列化程序派生出来的,该反序列化程序将负责填充基类的
x
y
,然后它将根据特定类填充字段

gsonBuilder.registerTypeAdapter(B.class, new BsonDeserializer());
gsonBuilder.registerTypeAdapter(C.class, new CJsonDeserializer());
我的问题是Gson在注册时只考虑超类,所以它不会对两个不同的类使用两个不同的反序列化程序,只使用第一个

我知道有RuntimeTypeAdapter类可用,但好吧,这会迫使我修改服务器上的json——假设每个json都包含字段“type”(我真的不能这么做——我不允许这么做)(?)

有什么好办法解决这类问题吗

gsonBuilder.registerTypeAdapter(B.class, new BsonDeserializer());
gsonBuilder.registerTypeAdapter(C.class, new CJsonDeserializer());