Подтвердить что ты не робот

Java: статические переходные поля

Я только что узнал в Java, вы можете объявить поле "static transient" - компилятор не жалуется. Это не похоже ни на что, поскольку статические поля не сериализуются, как мы все знаем.

Но мне интересно, действительно ли существует случай, когда поле "статические переходные" полезно?

4b9b3361

Ответ 1

Нет, вы сами это сказали, статические поля не сериализованы.

Не удивительно, что компилятор позволяет вам это сделать.

Ответ 2

В большинстве случаев это не полезно. Статические поля действительно не сериализованы сериализатором по умолчанию.

Однако поля static transient могут быть обнаружены посредством отражения. Если кто-то пишет собственный сериализатор, и он хочет также сериализовать статические поля, тогда он может взять ключевое слово transient и пропустить сериализацию этого конкретного поля.

PS: Этот ответ опубликован ради полноты и основан на комментарии Питера Лори. Кредиты ему.