忽然忘记了 序列化是否必须要提供一个 无参的构造函数?好像隐隐约约记得有这样的限制,但忘记在哪儿看到的了。因为刚看Hibernate的SessionFactoryImpl类,这个类实现了SessionFactory接口,
而SessionFactory接口声明是可序列化的,所以,SessionFactoryImpl也应该是可序列化的。不过SessionFactoryImpl,没有无参的构造函数,所以有点奇怪,不知道是不是自己记错了。。

解决方案 »

  1.   

    试验了一下:序列化、反序列化均不需要无参的构造函数。而JDK5API文档中关于序列化的说法是有问题的???如下:“在反序列化过程中,将使用该类的公用或受保护的无参数构造方法初始化不可序列化类的字段。可序列化的子类必须能够访问无参数的构造方法。”
    另外,Hibernate的SessionFactory虽然可以序列化,不过不能在普通情况下反序列化使用,
    它通过SessionFactoryObjectFactory.getInstance()来获取SessionFactory