Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот пример демонстрирует, как использовать методы writeReplace/readResolve. Метод readResolve разрешает объект, считанный из потока прежде, чем это будет возвращено к вызывающей стороне. Метод writeReplace позволяет классу Serializable объекта назначить его собственную замену в потоке прежде, чем объект будет записан.
Этот пример создает класс символа, для которого существует только один экземпляр каждой каждой привязки символа. Класс Symbol определяет метод readResolve. Символ создается из внешнего использования метода symbollookup. Метод symbollookup находит и возвращает символ, если один уже и, если Вы уже не существуете, создает тот. Это гарантирует уникальность в пределах одного VM. Затем, когда метод readResolve вызывают, поскольку символ читается, существующим ранее эквивалентным объектом Символа заменяют от хеш-таблицы, чтобы поддержать уникальное ограничение идентификационных данных, если такой символ существует. Если символ не существует, новый символ добавляется к хеш-таблице и возвращается. Это гарантирует уникальность, имея дело больше чем с одним VM.