【问题标题】:Javadoc inheriting parent constructors documentationJavadoc 继承父构造函数文档
【发布时间】:2013-01-18 15:37:02
【问题描述】:

假设我正在扩展一个类,例如:

public class MyComboBox<T> extends JComboBox<T> {

    public MyComboBox() {
        super();
    }

    public MyComboBox(ComboBoxModel<T> model ) {
        super(model);
    }

}

重新定义父类的构造函数(当然,它适合我的新类)已经够烦人的了,但还要复制每个构造函数的文档就更糟了。更不用说它不利于进一步继承,因为我现在必须多次更新文档。

显然,{@inheritDoc} 不会起作用,因为我没有覆盖任何东西。然而,这是我正在寻找的行为。有什么方法可以实现吗?

如何继承父构造函数文档?

【问题讨论】:

  • 父类文档不被用作子类一的默认值吗?
  • @Riduidel 不,至少在 Eclipse Juno + Java 7 中没有。使用我的示例,它根本没有显示任何文档。
  • 你说的是 Eclipse 的“Javadoc 视图”吗?
  • 实际上并没有“父”构造函数的概念。构造函数在父子之间不相关。您的SUComboBox() 可以很好地调用super([some made up model]) 而不是super()
  • 由于您必须调用 single 超级构造函数作为构造函数中的 first 语句,JavaDoc 可以提供一种机制来识别要继承的构造函数文档来自,IDE 可以根据给定构造函数中的第一条语句自动生成该标识符。

标签: java oop inheritance javadoc


【解决方案1】:

使用@see 标记并放置类和成员名称。要了解它是如何显示的,请查看JDocs,您可以在其中从 javadoc 跳转到源代码。

确切的语法是:

 @see com.x.y.z.ClassName#methodName()

【讨论】:

  • 好吧,虽然这有点像我想要的,但我仍然需要“点击”才能访问父文档。
  • @Zar - 你真的更喜欢复制的内容而不是链接的内容?
  • @for3st 不,你误解了我的意思。我希望文档被继承,即直接显示在实际项目上,而无需单击 @see 或从父项粘贴它。 @inheritDoc 对方法的工作方式相同。
  • 此外,您可以将构造函数参数类型放在那里:@see com.x.ClassName#ClassName (ClassOfArg1, ClassOfArg2) 和变体。 2022 年,JDocs 网站似乎已被一些非 Java 实体重新利用。
【解决方案2】:

您不能覆盖构造函数,因此不需要传播 javadocs。只需解释您的对象的客户需要了解该特定构造函数如何构造该对象。如果它只是将构造传递给扩展对象,那么就这么说吧。

【讨论】:

    猜你喜欢
    • 2011-12-08
    • 2012-01-24
    • 1970-01-01
    • 2014-01-31
    • 2013-06-01
    • 2023-04-03
    相关资源
    最近更新 更多