2012-01-12 4 views
6

Есть ли жизнеспособная причина, по которой поле serialVersionUID не называется SERIAL_VERSION_UID?Соглашение об именах serialVersionUID

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

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

ANY-ACCESS-MODIFIER статический конечный длинный serialVersionUID = 42L;

В то время как со ссылкой Java Naming Conventions всех статических конечных (констант) поля должны быть capitilized того, его фрагменты разделены с подчеркиванием.

+1

Так написано API-интерфейс сериализации;) – fge

ответ

4

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

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

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

+0

Не думаю, что serialVersionUID был введен в Java 1.5 –

+1

Я стою исправлен и отредактировал свой комментарий. – Dev

Смежные вопросы