В Java 14 представлена новая аннотация @Serial
в пакете java.io
. Его краткое описание в документации по API:
Указывает, что аннотированное поле или метод является частью механизм сериализации, определенный Спецификацией сериализации объектов Java.
Насколько я понимаю, аннотация используется для проверки во время компиляции (аналогично @Override
), чтобы проверить, соответствует ли механизм сериализации методы и поля используются правильно. Чего я не понимаю, влияет ли аннотация на саму десериализацию, если она является частью механизма сериализации? Или это первый шаг к улучшению дизайна функции де/сериализации, как это предлагается в этот комментарий?
Поэтому, если это должна быть полная картина, добавьте их все: @Serializable, @NotSerializable, @Transient и сделайте Serializable устаревшим…
Я смущен его использованием, и я не нашел никакого кода, использующего его. Не могли бы вы предоставить пример кода, выделяющий проблемы, когда аннотация не используется, но должна быть?