2016-04-21 129 views
2

我已阅读Constructor Calls while serializationSerialization Rules但能不能找出成员变量的所有规则序列化对象的成员变量。序列化和反序列化规则

我有以下问题:

Student.java

class Person { 
} 
class Student extends Person implements Serialization { 
    List<Book> books; 
    Student(){} 
    Student(List<Book> books) { 
     this.books = books; 
    } 
} 

class Book implements Serialization { 
    Book() {} 
    String bookId; 
    Book(String bookId) { 
     this.bookId = bookId; 
    } 

} 

这里的学生是序列化和书类也序列化那什么是构造调用序列化和deserializable规则。

  1. 是否需要默认的构造函数的类书? 如果是,那么为什么在反序列化时需要默认构造函数。
  2. 如何构造函数调用,而序列化和反序列化?

回答

0

见下面我的答案:

Is required default constructor in Book class? 

- >是的它是强制性的,否则序列化将失败。

How constructor calls while serialization and deserialization? 

- >序列化使用反射,默认的构造函数是强制使用反射。

+0

按我的知识,我知道,因为它实现系列化和默认的构造函数默认构造函数是不是在Student类需要超一流的,为什么在书类是必需的默认构造函数没有实现系列化现在,因为它已经实现了系列化,才需要。 –

+0

超级课在哪里?你在谈论Object类吗? – Lokesh

+0

我想了解当反序列化时需要默认构造函数。据我所知,默认构造函数只有在类没有实现序列化时才需要。 –