Вы не сможете хранить произвольные, не serializable
объекты без тонны работы.
Но если вы знаете, какие объекты вы уже храните, то вы, безусловно, можете написать свойсобственный сериализатор.Там нет ничего, что говорит, что данные должны быть двоичными.Вы можете использовать XML, JSON или некоторую искусственную систему хранения.
Можете ли вы ограничить свое приложение так, чтобы в нем хранились только определенные типы объектов?Если вы, например, храните только примитивы (ну, их коробочные версии) и коллекции или тому подобное, вы можете сделать это с очень небольшим количеством кода.Если нет, будьте готовы написать больше кода.
Возможно, будет проще изменить код ваших объектов сеанса на Serializable
, а затем просто использовать сериализацию Java для выполнения работы.
Обратите внимание, что будущее сериализации Java неопределенно.Очень старый JEP был подан для удаления сериализации, но он был отозван .Более поздние проблемы безопасности побудили некоторых поддержать удаление сериализации из будущих версий Java .Во второй статье конкретно упоминается, что «удаление сериализации является долгосрочной целью и является частью Project Amber », но я не вижу ничего в Project Amber, которое имеет дело с сериализацией ввсе .
Кроме того, некоторые существующие спецификации Java (части Java EE, включая спецификацию сервлета) в значительной степени требуют поддержки для сериализации, так что ... даже если она устарелаЯ не вижу, чтобы это куда-то шло в ближайшее время.