Javadoc参考另一个方法的参数

11

我不想写冗余的javadoc注释。正如您所见,@param x 在某种程度上是冗余的。是否有一种javadoc标记可以将类 B 中的 @param x 的引用设置为类 A 中的 @param x,或者我可以直接省略它?

/**
 * Class A constructor
 * 
 * @param x  position on x-axis
 */
public A(final int x) {
    this.x = x;
}

/**
 * Class B constructor
 * 
 * @param x  position on x-axis
 * @param y  position on y-axis
 */
public B(final int x, final int y) {
    super(x);
    this.y = y
}

我会退一步,并问为什么您要记录似乎有明显含义的参数。如果代码根据您选择的名称自行记录文档,那么JavaDoc基本上就无关紧要了。 - user439793
1
@John 这只是一个最简示例,仅供说明。 - Matthias
自己的笔记:{@inheritDoc} 至少允许复制重写方法的文档。 - Matthias
与当前方法相同:https://dev59.com/H3I-5IYBdhLWcg3wy76n - Ciro Santilli OurBigBook.com
3个回答

3

您不能忽略它,javadoc并不智能,它只是解析注释,即使存在继承关系,它也无法确定B构造函数的x参数与A构造函数的x参数是否相同。

我认为也没有什么“因式分解”的方法。 您只能编写所有内容,很抱歉...


1

使用方法应该可以解决:如果您覆盖或实现了一个方法,参数将被复制,如果没有提供。

构造函数不会被继承,甚至不会继承其他参数类型的构造函数。Javadoc无法知道您是否将参数传递给另一个构造函数,因为它不解释方法/构造函数的内容,只解释外部接口。

所以,我想如果您不想编写自己的doclet或更改标准doclet(即使这样,您也必须以某种方式指定从哪个构造函数继承参数),那么您就没什么运气了。(我认为这将是一个有用的补充,也适用于同一类中的多个类似方法。)


1

如果你要覆盖父类的方法,如果你不包含javadoc,大多数IDE将显示父类方法的javadoc。否则,在javadoc语法中没有定义/引用变量的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接