2013-06-17 3 views
8

Метод сигнатура метода записи ObjectOutputStream «s являетсяJava сериализации, writeObject (объект Object), почему не writeObject (Сериализуемый объект)

public final void writeObject(Object obj) throws IOException 

Как obj должен реализующий Serializable (знать о маркерах). Почему разработчики Java не пишут этот метод как

public final void writeObject(Serializable obj) throws IOException 

есть какая-либо причина?

ответ

7

writeObject определен в интерфейсе ObjectOutput, и его API говорит The class that implements this interface defines how the object is written. Это означает, что теоретически могут существовать реализации, отличные от ObjectOutputStream, которые могут использовать другие способы сериализации, которые не требуют, чтобы объект был Serializable.

+0

благодарит Евгения Дорофеева – sailor

+0

Что такое другой способ сериализации, кроме Externizalbe? –

+1

Например, XMLEncoder из пакета java.beans или http://xstream.codehaus.org/ –

Смежные вопросы