Java: статические переходные поля - PullRequest
43 голосов
/ 30 декабря 2010

Я только что узнал в Java, что можно объявить поле «статический переходный процесс» - компилятор не жалуется.Похоже, это бесполезно, так как статические поля не сериализуются, как мы все знаем.

Но мне интересно, есть ли на самом деле случай, когда полезны поля 'static transient'?

Ответы [ 2 ]

16 голосов
/ 30 декабря 2010

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

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

10 голосов
/ 15 сентября 2015

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

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

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

...