соглашение о присвоении имен serialVersionUID - PullRequest
6 голосов
/ 12 января 2012

Есть ли веская причина, по которой поле serialVersionUID не называется SERIAL_VERSION_UID?

Согласно документам для java.io.Serializable :

Сериализуемый класс может явно объявить свой собственный serialVersionUID объявив поле с именем "serialVersionUID", которое должно быть статическим, окончательный и типа long:

ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;

При ссылке Соглашения об именах Java все статические конечные поля (константы) должны быть прописаны, а их фрагменты должны быть разделены подчеркиванием.

1 Ответ

4 голосов
/ 12 января 2012

Возможно, потому что serialVersionUID был определен в API сериализации Java до того, как такие соглашения существовали.

Я нашел документ, опубликованный Sun в 1997 году, под названием Java Code Conventions , в которомв Разделе 9 на странице 16 говорится: «Имена переменных, объявленных как константы класса, так и констант ANSI, должны быть в верхнем регистре со словами, разделенными подчеркиванием (« »).» _

Так что я думаю,что Sun просто не применяет свои собственные стандарты в своем коде.

...