我有一个通过端点与我的 Android 客户端通信的 GAE/J 服务器。
有时我会通过 GCM 向客户端发送一个实例,而不是让客户端通过端点请求它。在这种情况下,我需要自己进行 JSON 序列化/反序列化,而不是让端点为我做这件事。
这在客户端上尤其混乱。我想反序列化到由端点生成的类中,这样我就可以使用相同的代码来处理新数据,而不管我是通过端点还是通过 GCM 接收到的。
我认为一种解决方案是将代码添加到客户端上生成的类(例如从生成的类继承),但我发现该类是最终的并且所有成员都是私有的,因此使用它很尴尬。 我不认为我可以在注释中设置任何会改变它的东西?
另一种解决方案是使用 Google java 客户端库反序列化到生成的类中,就像端点一样。不幸的是,在我看来,那个库同样不灵活:我必须将 GCM 数据放入一个 HttpResponse 对象中,这样我才能调用 HttpResponse.parseAs(MyGeneratedClass.class)。
有没有办法利用与 HTTP 请求/响应代码更加分离的 Java 客户端库的 JSON 反序列化代码(以便反序列化为具有 @Key 注释的生成类)?