1
您可以使用CustomFieldSerializer
来定义对象的自定义序列化和反序列化。为什么CustomFieldSerializer需要静态方法?
这表面上是很容易定义自定义序列化的Xxx
类:
- 创建一个名为
Xxx_CustomFieldSerializer
扩展CustomFieldSerializer<Xxx>
类, - 实现抽象方法
serializeInstance
和deserializeInstance
,以及可选instantiateInstance
。
这会产生一个极大编译归结为以下错误:
subtype Custom Field Serializer 'Xxx_CustomFieldSerializer' does not define a deserialize method: 'public static void deserialize(SerializationStreamReader reader,Xxx instance)' (reached via Xxx)'
它希望你创建做什么的实现的方法做静态方法。很明显,一个委托给另一个,但它意味着你不能提取出类似类型的所有这种样板Xxx
。
为什么?这只是从旧版本的GWT或其他东西中遗留下来的吗?有没有办法避免编写所有额外的东西?
你能告诉你的代码?它[_should_ work](http://code.google.com/p/google-web-toolkit/source/detail?r=9592)。另外,在'com.google.gwt.user.server.rpc.impl.SerializabilityUtil#loadCustomFieldSerializer'中放置一个断点来调试问题。 – 2012-04-21 09:42:19
请注意,该变更列表中的所有CFS均实施静态方法,因此我不确定这是否应该起作用。你的意思是在编译器中调试?是的,我会尝试。 – 2012-04-23 08:10:09
哦,看起来像'com.google.gwt.user.rebind.rpc'(不是那种改变)需要静态方法,而这些实例方法只是服务器端的优化。 – 2012-04-23 11:20:01