serialVersionUID命名约定

时间:2012-01-12 14:06:20

标签: java naming-conventions serializable

有没有可行的理由说明为什么serialVersionUID字段没有命名为SERIAL_VERSION_UID?

根据java.io.Serializable的文档:

  

可序列化类可以显式声明自己的serialVersionUID   通过声明一个名为" serialVersionUID"的字段必须静态,   最终,类型为long:

     

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

在引用Java Naming Conventions时,所有静态最终(常量)字段应该被限制,其片段用下划线分隔。

1 个答案:

答案 0 :(得分:4)

可能是因为在存在此类约定之前,在Java序列化API中定义了serialVersionUID。

我发现Sun于1997年发布了一个名为Java Code Conventions的文档,该文档在第16页的第9节中说明了“变量的名称声明了类常量和ANSI     常量应该是alluppercase,单词用下划线分隔(“”)。“_

所以我的猜测是,Sun并没有对自己的代码强制执行自己的标准。