Serializeable - пустой интерфейс. Он не содержит никаких методов. Итак, чтобы реализовать его, все, что вам нужно сказать, это implements Serializable
в классе. Это не огромная нагрузка на вас. Если вы расширяете Comparator
, вам даже не нужно реализовывать Serializable
, потому что суперкласс делает это за вас, а затем вам не нужно ничего делать, чтобы реализовать Serializable
.
Когда что-то реализует Serializable
, это означает, что объект может быть преобразован в массив байтов по желанию. Это используется для передачи через Интернет, хранения в файле и т. Д. Говоря очень грубо, способ сериализации для объекта по умолчанию состоит в том, чтобы взять каждый объект, на который ссылается объект, который вы пытаетесь сериализовать, объект в массив байтов (т. е. вызывать сериализацию на нем рекурсивно) и объединить байтовые массивы для создания массива байтов, который представляет общий объект.
Теперь, зачем следует использовать Comparator
Serializable
? Предположим, вы хотите сериализовать TreeMap
или некоторые другие, заказанные Collection
. Целью сериализации является предоставление полного представления объекта.В таких коллекциях, как TreeMap
, есть объект Comparator
, поэтому для создания массива байтов, который захватывает каждый аспект таких коллекций, вы должны также сохранить Comparator
в качестве байтового массива. Следовательно, Comparator
должен быть Serializable
, так что другие вещи могут быть правильно сериализованы.
Почему Android не заботится о сериализации вообще? – irreputable
@irreputable: Почему бы вам не использовать сериализацию на Android? – Thilo