SerialVersionUID JavaDoc?

时间:2016-11-03 17:10:36

标签: java documentation javadoc serialversionuid

在我的Java程序中添加文档时,我意识到大多数类需要声明serialVersionUID常量属性。我该如何记录这个属性?如果我使用默认与生成的串行版本UID,我会以不同的方式记录它吗?

/**
 * What goes here? "A unique serial version identifier"
 */
private static final long serialVersionUID = -8922096951749901688L;

1 个答案:

答案 0 :(得分:2)

首先,您提供的serialVersionUID评论似乎正确但不必要

serialVersionUID作为Serializable对象(并非所有java类)的一部分是必需的,并且在此对象的序列化/反序列化过程中使用。

作为一般规则。 始终检查API
在这种情况下,Serializable API位于底部!!

  

序列化运行时将每个可序列化类与版本号相关联,称为serialVersionUID,在反序列化期间使用该版本号来验证序列化对象的发送方和接收方是否已加载与该序列化兼容的该对象的类。如果接收者已经为具有与相应发送者类的serialVersionUID不同的serialVersionUID的对象加载了类,则反序列化将导致InvalidClassException。可序列化类可以通过声明名为" serialVersionUID"的字段来显式声明其自己的serialVersionUID。必须是static,final和long类型:

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

所以你说它实际上不应该记录在案,因为它已经有了javadoc吗?当我省略javadoc并将鼠标悬停在它上面时,它不显示任何:/

它是Serializable界面的一部分,所以恕我直言是没有必要的...无论如何,您可以使用自己的评论+ @see注释。这样的事情(不确定是否会起作用,现在无法创建javadoc ......)

/**
 * A unique serial version identifier
 * @see Serializable#serialVersionUID
 */