2012-01-12 20 views
6

Czy istnieje jakiś uzasadniony powód, dla którego pole serialVersionUID nie ma nazwy SERIAL_VERSION_UID?nazewnictwo konwencji serialVersionUID

Zgodnie z docs dla java.io.Serializable:

postaci szeregowej klasa może zadeklarować własną serialVersionUID wyraźnie deklarując pole o nazwie „serialVersionUID”, który musi być statycznych końcowy i typu długi:

KOŃCOWY MODYFIKATOR statyczny końcowy długi serialVersionUID = 42L;

Odnosząc Java Naming Conventions wszystkie statycznych ostatecznych (stałe) pola powinny być capitilized po jego fragmenty powstałe z podkreśleniem.

+1

W ten sposób napisany jest API serializacji;) – fge

Odpowiedz

4

Prawdopodobnie dlatego, że serialVersionUID został zdefiniowany w API serializacji Java, zanim takie konwencje istniały.

znalazłem dokument opublikowany przez Sun w 1997 roku o nazwie Java Code Conventions który mówi w rozdziale 9 na stronie 16 „Nazwy zmiennych zadeklarowanych stałych klasy i ANSI stałe powinny być alluppercase ze słów oddzielonych podkreślenia («») "_

Zgaduję więc, że Sun nie wymusiła własnych standardów na ich własnym kodzie.

+0

Nie sądzę, serialVersionUID został wprowadzony w Javie 1.5 –

+1

Poprawiam się i edytowałem mój komentarz. – Dev