GWT中可序列化接口的用途是什么(关于RPC机制)

2022-09-02 01:22:11

GWT中可序列化接口的用途是什么(关于RPC机制)。我一直无法找到一个很好的解释,为什么它是这样的,为什么默认的Java可序列化标记接口不起作用。


答案 1

根据GWT序列化文档,两者兼而有之:SerializableIsSerializable

如果满足以下所有条件,则用户定义类是可序列化的:

  1. 它可以分配给 IsSerializable 或 Serializable,要么是因为它直接实现了这些接口之一,要么是因为它派生自一个超类,
  2. 所有非最终、非瞬态实例字段本身都是可序列化的,并且
  3. 从 GWT 1.5 开始,它必须具有默认(零参数)构造函数(具有任何访问修饰符)或根本没有构造函数。

但是,一个关键的区别是,出于安全原因,所有类都必须包含在序列化策略中,该策略是在编译时生成的,而类没有该要求。SerializableIsSerializable

如果您的兴趣纯粹是GWT,并且您没有例如在Web应用程序和另一个应用程序之间共享您的模型类,我建议您实现模型类/ DTO。IsSerializable


答案 2

如果您与其他程序共享对象,则使用Serializable,因为它是标准的java库函数,

但是,如果您只想在GWT中的服务器和客户端之间传递它,请使用IsSerializable。它可以帮助您确保不要开始将其传递到不应去的地方。


推荐