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