【问题标题】:Details of difference between @see and @inheritDoc@see 和 @inheritDoc 之间的区别的详细信息
【发布时间】:2012-10-30 22:07:11
【问题描述】:

我查看了 JavaDoc reference,虽然我了解 @see(各种链接)和 {@inheritDoc}(超类 JavaDoc 注释的导出)之间的基本区别,但我需要澄清事情的实际实现方式。

在 Eclipse IDE 中,当我为继承的方法(从接口或 toString() 覆盖等)选择“生成元素注释”时,它会创建以下注释

/* (non-Javadoc)
 * @see SomeClass#someMethod()
 */

如果我需要生成 JavaDoc,我应该把它留在那里,将 @see 替换为 {@inheritDoc},或者将其转入 真正的 JavaDoc 中:

/**
 * {@inheritDoc}
 */

当我这样做时,我还应该保留 class#method 标志吗?

【问题讨论】:

    标签: java javadoc comments


    【解决方案1】:

    首先,您应该删除原始的 eclipse 模板,因为它只是嘈杂的垃圾。要么放入有意义的文档,要么根本不放入任何东西。但是,使用 IDE 模板对显而易见的内容进行无用的重述只会使代码变得混乱。

    其次,如果您需要生成 javadoc,那么您必须使注释以/** 开头。否则,它不是 javadoc。

    最后,如果您要覆盖,那么您应该使用@inheritDoc(假设您想添加到原始文档中,正如@seh 在评论中指出的那样,如果您只想复制原始文档docs,那么你不需要任何东西)。 @see 应该只真正用于引用其他相关的方法。

    【讨论】:

    • 如果您打算添加到原始超类文档,您应该只使用@inheritDoc。如果您只想复制它,Javadoc 已经这样做了,注意超类文档适用于子类的重写方法,因为子类没有提供额外的文档。
    • 我生成了带有和不带有@inheritDoc 的文档,并没有看到任何区别。即使没有@inheritDoc,我也看到派生类的Javadoc被附加到基类中。
    • 我来到这里是因为 checkstyle 抱怨“方法似乎不是为扩展而设计的”。一个好主意可能是使用@inheritDoc,然后添加一些特定于实现的文档,例如它是如何实现/覆盖父方法的,尤其是为什么它这样做。
    猜你喜欢
    • 2013-03-17
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多