Зачем вам нужно реализовать этот пустой интерфейс для сериализации объекта? Почему, если вам нужно это сделать, методы сериализации в файле запрашивают объект вместо Serializable? ObjectOutputStream.writeObject(Object obj)
Как это работает?
Объект может быть сериализован только в том случае, если он реализует интерфейс Serializable. На это есть несколько причин:
Одним из этих примеров является размещение конфиденциальной информации в классе. Рассмотрим этот класс:
public class Machine реализует Serializable {private String password; } }
Это возможная угроза проектирования для машины класса, которая включает в себя пароль, который может быть сериализован. Пароль здесь должен быть временным, если не требуется никаких других требований для пароля serilaizin.
ObjectOutput имеет методы, позволяющие записывать объекты в потоковое содержимое, которое может быть выполнено не только Serialiazaton. ObjectOutputStream, например, нуждается в объектах, которые реализуют Serialaizable.
Они называются interfaces
tag
или marker
; следующий отрывок из статьи в Википедии объясняет это довольно хорошо. Пожалуйста, обратите внимание также на критику шаблона этой статьи.
Примером применения интерфейсов маркеров на языке программирования Java является интерфейс
Serializable
. Класс реализует этот интерфейс, чтобы указать, что его непереходные элементы данных могут быть записаны вObjectOutputStream
.ObjectOutputStream
частный методwriteObject()
содержит рядinstanceof
тестов, чтобы определить writeability, один из которых ищетSerializable
интерфейс. Если какой-либо из этих тестов терпит неудачу, методNotSerializableException
.