2016-03-03 87 views
9

在Java的Javadoc中,有一种方法可以使用{@inheritDoc} tag继承子类中的方法文档。如何继承KDoc文档?

有没有办法在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() { /* ... */ } 
} 
+0

不'{@inheritDoc}'不行?你试过了吗? – CaseyB

+0

@CaseyB,是的,我做过,IntelliJ和dokka都不理解它,它们只是将它显示为文本。 – hotkey

+2

我找不到任何记录我的发现的东西,但从我所知道的情况来看,如果没有在覆盖中指定文​​档,Kotlin Doc会在覆盖函数时继承文档。现在我想知道的是如何“扩展”/“包含”基础文档... – mfulton26

回答

10

Dokka总是副本从一个基地成员继承的一个文件,如果继承的成员不具有其自己的文档。无法将基本成员文档与继承的成员中提供的其他文本组合在一起。

(Dokka不支持@inheritdoc Javadoc标记,因为这不可避免地导致了只由/** @inheritdoc */意见泛滥,我觉得超级无用和冗余。)

+4

由于某些原因,当我在没有文档的继承函数上点击Ctrl + Q时,它没有显示任何内容,但是基本函数确实指定了它,当我按下Ctrl + B并点击Ctrl时+ Q'在一个基础函数上,显示文档。也许这是一些IDE插件的bug。 – dimsuz

+1

@yole当我从java类/接口重写的方法上点击快速文档快捷方式时,我看不到任何文档,而基类/接口有一些文档。这真的很不方便。对此有没有公开的问题? –