Serializable es una interfaz en blanco. No contiene ningún método. Entonces, para implementarlo, todo lo que necesita decir es implements Serializable
en una clase. No es una gran carga para ti. Si extiende Comparator
, ni siquiera necesita implementar Serializable
porque la súper clase hace eso por usted, y luego no necesita hacer nada para implementar Serializable
.
Cuando algo implementa Serializable
, eso significa que el objeto puede convertirse en una matriz de bytes a voluntad. Esto se usa para transmisión a través de Internet, almacenamiento en un archivo, etc. Hablando de forma muy aproximada, la forma en que la serialización funciona para un objeto, de forma predeterminada, es tomar cada objeto referenciado por el objeto que intenta serializar, convertir cada uno objeto en una matriz de bytes (es decir, invocar la serialización de forma recursiva), y concatenar las matrices de bytes para producir una matriz de bytes que representa el objeto general.
Ahora, ¿por qué debería un Comparator
implementar Serializable
? Digamos que desea serializar un TreeMap
u otro orden Collection
. El objetivo de la serialización es proporcionar una representación completa de un objeto.Las colecciones como TreeMap
tienen un objeto Comparator
, de modo que para poder generar una matriz de bytes que capture todos los aspectos de dichas colecciones, debe poder guardar el Comparator
como un conjunto de bytes también. Por lo tanto, Comparator
debe ser Serializable
para que otras cosas se puedan serializar correctamente.
¿Por qué Android se preocuparía por la serialización en absoluto? – irreputable
@irreputable: ¿Por qué no usarías la serialización en Android? – Thilo