重写返回类型为重写方法的子类的方法的Java文档实践';s返回类型

重写返回类型为重写方法的子类的方法的Java文档实践';s返回类型,java,javadoc,code-documentation,Java,Javadoc,Code Documentation,我正在为一个新的包编写Javadoc,在这个包中,我面临着标题中提到的困境 我将基类方法定义为 类向量{ .. 公共摘要向量加法(向量v); .. } 重写方法定义为 类IntVector扩展了向量{ .. @凌驾 公共整数向量加法(向量v){ .. } 重写方法不会更改除返回类型之外的行为。我知道重写方法不需要冗余文档。但是在这种情况下,重写方法拥有自己的文档是有意义的,至少对于返回类型是如此。对于这种情况,什么是最佳做法?只需复制指定的是否有避免重复的好方法?正如注释中所指出的,如果不同

我正在为一个新的包编写Javadoc,在这个包中,我面临着标题中提到的困境

我将基类方法定义为

类向量{
..
公共摘要向量加法(向量v);
..
}
重写方法定义为

类IntVector扩展了向量{
..
@凌驾
公共整数向量加法(向量v){
..
}

重写方法不会更改除返回类型之外的行为。我知道重写方法不需要冗余文档。但是在这种情况下,重写方法拥有自己的文档是有意义的,至少对于返回类型是如此。对于这种情况,什么是最佳做法?只需复制指定的是否有避免重复的好方法?

正如注释中所指出的,如果不同的返回类型没有什么特殊之处,您只想指出它是不同的,那么通常不需要显式地这样做。javadoc和IDE代码完成将指示返回类型是不同的t

但是,如果要添加其他信息,可以查看:

当方法注释中缺少主描述或@return、@param或@throws标记时,javadoc命令会从其重写或实现的方法(如果有)复制相应的主描述或标记注释

所以在你的情况下,你可以写:

/**
 * @return A verify special IntVector
 */
@Override
public IntVector add(Vector<Integer> v) {
    ...
}
/**
*@返回一个验证特殊IntVector
*/
@凌驾
公共整数向量加法(向量v){
...
}

它将复制所有缺少的信息,例如重写方法中的
v
参数的主描述和文档。

您需要对它说些什么?“返回一个IntVector”除了返回类型的声明之外,这真的值得一提吗?我想让用户知道IntVector.add(v)的返回类型是IntVector,因此他们可以使用IntVector作为返回值。如果用户使用的是
IntVector
,则他们的IDE将向他们显示返回类型是
IntVector
。感谢您的回答!请详细说明“javadoc和IDE代码完成将指示返回类型不同”,javadoc部分?现在(重写方法中没有注释)用户在“在基类中声明的方法”中看到add()方法,这表明返回类型是Vector。我无法重现您所描述的内容。当我运行
javadoc-sourcepath src-d docs-subpackages my
(在Java 8和12中)时,我看到下面列出的重写方法“方法摘要”,即使返回类型没有更改(不确定是否有意更改)。但是,对我来说,“在中声明的方法”一节(也由Java SE 12文档使用)被称为“继承自的方法”(就像Java SE 8文档的情况一样)@user1200373,您是否使用了
--overrided methods=summary
?如果是这样,那么您可能会遇到这种情况。您完全正确,使用了
--overrided methods=summary
;您提到的错误阻止了在我仅使用@inheritDoc标记时为重写方法生成javadoc。该错误还为我提供了一个类似的示例在JDK库中进行评估,这是我将遵循的惯例。作为旁注-我所观察到的
--重写的方法=摘要
生成“在”部分声明的方法,而
--重写的方法=细节
生成“从”部分继承的方法。