GWT中IsSerializable接口的用途是什么(关于RPC机制)

时间:2010-06-17 19:54:45

标签: java gwt gwt-rpc

GWT中IsSerializable接口的用途是什么(关于RPC机制)。我从来没有找到一个很好的解释,为什么它是这样的,以及为什么默认的Java Serializable标记接口不起作用。

2 个答案:

答案 0 :(得分:25)

根据{{​​3}},

SerializableIsSerializable都有效:

  

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

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

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

如果你的兴趣纯粹是在GWT中,并且你没有例如在web应用程序和另一个应用程序之间共享你的模型类,我建议你让你的模型类/ DTO实现{{1} }。

答案 1 :(得分:6)

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

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