为什么CustomFieldSerializer需要静态方法?

时间:2012-04-20 15:29:38

标签: java gwt serialization gwt-rpc

使用CustomFieldSerializer 为对象定义自定义序列化和反序列化。

为您的班级Xxx定义自定义序列化表面上很容易:

  • 创建一个名为Xxx_CustomFieldSerializer的类,其中包含CustomFieldSerializer<Xxx>
  • 实施抽象方法serializeInstancedeserializeInstance,以及可选的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遗留下来的吗?有没有办法避免写出所有额外的东西?

1 个答案:

答案 0 :(得分:2)

感谢Thomas Broyer找到了这个。这只是GWT的一个限制。

请参阅:com.google.gwt.user.rebind.rpc.CustomFieldSerializerValidator

请参阅:http://code.google.com/p/google-web-toolkit/issues/detail?id=7331&thanks=7331&ts=1335182609