如何继承KDoc文档?

32

在Java的Javadoc中,有一种方法可以使用{@inheritDoc}标签,在子类中继承一个方法的文档。

在Kotlin的KDoc中是否有同样的方法呢?

基本上,我想做的是以下内容:

abstract class Base {
    /**
     * Some KDoc documentation here.
     */
    abstract fun foo()
}

class Derived: Base() {
    /**
     * Here is all the documentation from Base#foo's KDoc inherited.
     *
     * And here goes something more in addition.
     */
    override fun foo() { /* ... */ }
}

{@inheritDoc}不起作用吗?你试过了吗? - CaseyB
1
@CaseyB,是的,我试过了,IntelliJ和dokka都无法理解它,它们只是将其显示为文本。 - hotkey
2
我找不到任何记录我的发现的东西,但据我所知,如果在覆盖函数时没有指定文档,则 Kotlin Doc 会继承文档。现在我想知道的是如何“扩展”/“包含”基本文档... - mfulton26
@mfulton26,好的,现在我明白dokka默认插入父级文档。如果您能找到一种自定义它们的方法,那将是很棒的,但仅继承它们对我来说就足够了。 - hotkey
@hotkey 我确实查看了 https://github.com/Kotlin/dokka,但没有找到有用的信息。你可以创建一个 GitHub 问题或 Kotlin YouTrack 问题来查询此类问题。 - mfulton26
1个回答

34

Dokka在继承成员没有自己的文档时,总是将文档从基础成员复制到继承成员。无法将基础成员文档与继承成员提供的附加文本结合起来。

(Dokka不支持@inheritdoc Javadoc标签,因为这会不可避免地导致由/** @inheritdoc */组成的评论大量出现,我认为这些评论是非常无用和冗余的.)


12
然而,当我在没有文档的继承函数上按下 Ctrl + Q 时,它不会显示任何内容,但基础函数确实有指定文档。当我按 Ctrl + B 转到基础函数并在其上按下 Ctrl + Q 时,文档将被显示。也许这是一些 IDE 插件的 bug。 - dimsuz
7
当我在Java类/接口的覆盖方法上使用快速文档快捷键时,我发现没有文档,而基类/接口却有一些文档。这真的很不方便。是否有相关的未解决问题? - Louis CAD
3
好的,我会尽力。根据 https://youtrack.jetbrains.com/issue/KT-25035 看起来是有这个问题的。 - MariusVolkhart
只是提供信息,在Android Studio中,当我悬停在继承的属性上时,它会显示基本属性的文档。 - Dhunju_likes_to_Learn

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