Ответ 1
Нет, вы сами это сказали, статические поля не сериализованы.
Не удивительно, что компилятор позволяет вам это сделать.
Я только что узнал в Java, вы можете объявить поле "static transient" - компилятор не жалуется. Это не похоже ни на что, поскольку статические поля не сериализуются, как мы все знаем.
Но мне интересно, действительно ли существует случай, когда поле "статические переходные" полезно?
Нет, вы сами это сказали, статические поля не сериализованы.
Не удивительно, что компилятор позволяет вам это сделать.
В большинстве случаев это не полезно. Статические поля действительно не сериализованы сериализатором по умолчанию.
Однако поля static
transient
могут быть обнаружены посредством отражения. Если кто-то пишет собственный сериализатор, и он хочет также сериализовать статические поля, тогда он может взять ключевое слово transient
и пропустить сериализацию этого конкретного поля.
PS: Этот ответ опубликован ради полноты и основан на комментарии Питера Лори. Кредиты ему.