2012-01-12 67 views
6

serialVersionUIDフィールドの名前がSERIAL_VERSION_UIDでない理由はありますか? java.io.SerializableのためのドキュメントによるとserialVersionUID命名規則

直列化可能クラスが、静的 最終、およびタイプの長さでなければならない「のserialVersionUID」という名前のフィールドを宣言することにより、明示的に 、独自のserialVersionUIDを宣言することができます。

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

Java Naming Conventions全て静的最終(定数)フィールドを参照しながらは下線で分離そのフラグメントを有するcapitilizedされるべきです。

+1

これはシリアル化APIが書かれている方法です) – fge

答えて

4

おそらく、serialVersionUIDは、そのような規則が存在する前にJava直列化APIで定義されているためです。 『「 定数は、アンダースコア(で区切られた単語をalluppercaseれるべき変数の名前は、クラス定数を宣言し、ANSIの』私は16ページの第9章で述べている1997年に日によって公開された文書はJava Code Conventionsと呼ばれた

)」と書いてあります。だから私の推測では、サンはちょうど自分のコードで独自の基準を施行していないと思います。

+0

serialVersionUIDはJava 1.5で導入されました。 –

+1

私は修正してコメントを編集しました。 – Dev