2016-03-03 88 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類/接口重寫的方法上點擊快速文檔快捷方式時,我看不到任何文檔,而基類/接口有一些文檔。這真的很不方便。對此有沒有公開的問題? –