2012-01-18 17 views
5

La firma para readObject es:de entrada Java La serialización readObject vs entrada readExternal

private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException; 

que se lleva en una referencia de un tipo de clase concreta.

La firma para readExternal es:

void readExternal(ObjectInput in) throws IOException, ClassNotFoundException 

que toma en una referencia de un tipo de interfaz.

¿Por qué esta discrepancia? ¿Es solo un descuido?

Respuesta

2

ObjectInputStream tiene varios métodos no en ObjectInput que se utilizan específicamente para admitir el mecanismo de serialización predeterminado. Por lo tanto, la serialización debe provenir de un ObjectInputStream, pero la externalización puede provenir de cualquier ObjectInput.

Cuestiones relacionadas