serialVersionUID命名约定

Woj*_*zyk 6 java naming-conventions serializable

有没有可行的原因,为什么serialVersionUID字段没有命名为SERIAL_VERSION_UID?

根据java.io.Serializable的文档:

可序列化类可以通过声明名为"serialVersionUID"的字段来显式声明其自己的serialVersionUID,该字段必须是static,final和long类型:

ANY-ACCESS-MODIFIER静态最终长serialVersionUID = 42L;

在引用Java命名约定时,所有静态最终(常量)字段都应该被限制,其片段用下划线分隔.

Dev*_*Dev 5

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

我发现 Sun 于 1997 年发布的名为Java 代码约定的文档在第 16 页的第 9 节中说“声明为类常量的变量的名称和 ANSI 常量的名称应全部大写,单词之间用下划线(“ ”)分隔。”_

所以我的猜测是 Sun 只是没有在他们自己的代码上强制执行他们自己的标准。