2016-12-05 50 views
3

我有2個類。第一個包含一個棄用的方法。第二個類實例化第一個類並使用其不推薦使用的方法。javadoc中未提及的棄用方法

編譯器會顯示一個警告,但:運行javadoc Test.java後,爲什麼不推薦使用方法不生成的Java文檔中列出:

問題?

下面是代碼:

import java.lang.annotation.*; 
class Tester{ 
    private int a = 1; 
    /** 
    * @deprecated 
    * This is deprecated because I do not like it 
    */ 
    @Deprecated 
    public void afficher(){ 
     System.out.println("a is: " + a); 
    } 
} 
public class Test{ 
    public static void main(String[] args){ 
     Tester T = new Tester(); 
     T.afficher(); 
    } 
} 

這裏是過時的方法根本沒有列出生成的Java文檔文件的截圖:

enter image description here

+5

您的類不是公共的 - 'Tester'不會在所有*目前記錄在案*。這與棄用無關。 –

+0

@JonSkeet我使用我提到的命令生成了上述程序的文檔,但我沒有看到列出的已棄用方法 –

+3

將'Test'移動到他自己的文件中,並將其設置爲公共類。然後再次執行javadoc。 – AxelH

回答

1

的Javadoc只有文件公開課。您的班級中有一個棄用的方法不公開,因此不會被記錄。

javadoc Test.java 

生成類Test的文檔。您的棄用方法在類Tester中。

+0

謝謝,但以前我被要求不要在類中使用棄用的元素:http://stackoverflow.com/questions/40968273/field-declared-deprecated-but-no-compiler-warning –

+0

不,你被告知,你不會被警告。 – xenteros

+0

我再次仔細閱讀了您的答案,並使用了上述@AxelH的評論,因此現在可以使用。非常感謝你 –

3

正如在評論中指出的:類Tester將不會被記錄,因爲它不被認爲與javadoc相關。 默認情況下,僅收集publicprotected作爲文檔(http://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html)。

要麼更改其知名度(例如,使其可見性爲protectedpublic),要麼生成標記爲-package-private的javadoc。但要小心,那麼你可能會生成大量的文檔,而這些文檔可能根本不需要。

javadoc -package Test.java 
1
-public: Shows only public classes and members. 
-protected: Shows only protected and public classes and members. This is the default. 
-package: Shows only package, protected, and public classes and members. 
-private: Shows all classes and members. 

所以用javadoc的稱它爲-package -d *的.java

+0

感謝你的最後一條命令 –