Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

serialVersionUID naming convention

Is there any viable reason why serialVersionUID field is not named SERIAL_VERSION_UID?

According to the docs for java.io.Serializable:

A serializable class can declare its own serialVersionUID explicitly by declaring a field named "serialVersionUID" that must be static, final, and of type long:

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

While referring Java Naming Conventions all static final (constants) fields should be capitilized having its fragments separated with an underscore.

like image 347
Funky coder Avatar asked Jan 12 '12 14:01

Funky coder


1 Answers

Probably because serialVersionUID was defined in the Java serialization API before such conventions existed.

I found a document published by Sun in 1997 called Java Code Conventions that says in Section 9 on page 16 "The names of variables declared class constants and of ANSI constants should be alluppercase with words separated by underscores (“”)."_

So my guess is that Sun just didn't enforce their own standards on their own code.

like image 102
Dev Avatar answered Oct 07 '22 22:10

Dev