2013-07-05 67 views
141

在其他類別目前我引用的方法與此的Javadoc語法:的Javadoc鏈接方法在其他類

@see {@link com.my.package.Class#method()} 

而且在我的理解從文檔,這是做到這一點的正確方法。但現在到了有趣的部分,或令人沮喪。當我生成這樣的javadoc我首先是得到以下錯誤:

warning - Tag @see:illegal character: "123" in "{@link com.my.package.Class#method()}" 
warning - Tag @see:illegal character: "64" in "{@link com.my.package.Class#method()}" 
warning - Tag @see: reference not found: {@link com.my.package.Class#method()} 

這個生成的HTML代碼是:

"," <code>com.my.package.Class#method()}</code> "," 

當然,我也沒有任何聯繫。 任何人都可以告訴我發生了什麼,以及有關如何解決此問題的任何提示?

根據ASCII表字符123和64代表{和@,爲什麼當這個語法根據文檔正確時,這些字符是否有效?

+1

只是爲了檢查...你有沒有讀過Javadoc Generator文檔? http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#link –

+0

您是否在此JavaDoc寫入的類中導入了'com.my.package.Class'? _reference not found_似乎很奇怪。另一方面,我從來沒有使用過它們,但有可能'@ see'和'@ link'相互衝突,以'@ see'生成它自己的部分,這不會讓我感到驚訝。 – Gamb

+1

@DiogoMoreira - 不,我沒有閱讀引擎,但我會檢查出來。 – Robert

回答

183

對於Javadoc標籤@see,您不需要使用@link; Javadoc將爲您創建一個鏈接。嘗試

@see com.my.package.Class#method() 

Here's more info about @see.

+0

感謝你們,我剛剛測試過這個解決方案,這個工作正常!但我已經閱讀了很多地方,你應該使用鏈接看看這個工作,所以這有點奇怪... – Robert

+6

你可以在其他地方使用'@ link',Javadoc還沒有變成一個鏈接,例如在'@param'的描述中,'@ return'的描述中,描述的主要部分等等。 – rgettman

+0

當我剛剛嘗試這個時,它顯示方法爲純文本,它不像我的@see那樣可點擊一種本地方法。 – JesseBoyd

95

除了@see,指的是另一個類的類和方法可能是{@link somepackage.SomeClass#someMethod(paramTypes)}的一個更一般的方式。這有利於在javadoc描述中使用。

javadoc documentation (description of the @link tag)

This tag is very simliar to @see – both require the same references and accept exactly the same syntax for package.class#member and label. The main difference is that {@link} generates an in-line link rather than placing the link in the "See Also" section. Also, the {@link} tag begins and ends with curly braces to separate it from the rest of the in-line text.

26

因此,解決原來的問題是,你不需要兩個「@see」和「{@link ...}」在同一引用線。 「@link」標籤是自給自足的,如前所述,你可以把它放在javadoc塊的任何地方。所以你可以混合兩種方法:

/** 
* some javadoc stuff 
* {@link com.my.package.Class#method()} 
* more stuff 
* @see com.my.package.AnotherClass 
*/ 
+0

這應該被接受回答,因爲其他兩個答案沒有顯示'@link'或'@see'需要在多行評論/ ** * /不是單行 – Sniper

+0

@Sniper,'{@link}'工作在單行Javadoc評論中,你可能指的是它們不能用以'//開始'的註釋工作嗎? '/ ** * /'是Javadoc,對於任何Javadoc函數都是必需的。 – Jase

+0

是@Jase我完全認識到這個評論需要是/ ** * /,但不是// – Sniper