我有一个运行良好的GWT项目,我使用了一堆共享类。在项目的这个阶段,我需要与其他库共享POJO。
我决定将POJO放在库中。
public class Application implements IsSerializable {
// ....
}
由于这个库是技术中立的,我想摆脱IsSerializable
以及对GWT的依赖。这有意义吗?
我是否需要在项目的GWT方面做任何事情?
答案 0 :(得分:1)
您可以使用标准java.io.Serializable
界面而不是(现在有点过时)IsSerializable
。它被引入的原因是区分GWT RPC序列化和Java的序列化。关于这个主题的official FAQ entry:
- GWT序列化的语义远比标准Java序列化复杂,因此使用
java.io.Serializable
作为标记接口意味着GWT的序列化系统能够实现更多功能。- 相反,GWT的序列化机制比标准Java更简单,因此使用
java.io.Serializable
意味着用户比实际更需要担心(例如序列化版本ID)。- GWT仅实现完整Java JRE类的子集,并且在
java.io
中没有实现任何内容。使用java.io.Serializable
作为GWT RPC序列化标记接口会稀释java.io
在GWT应用程序中不可用的消息。虽然上述各点仍然有效,但GWT团队认为社区普遍意识到这些问题,但更喜欢能够使用标准
java.io.Serializable
界面而不是让他们的类实现IsSerializable
标记界面(...)。