使用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遗留下来的吗?有没有办法避免写出所有额外的东西?
答案 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