2013-02-10 5 views
50

Jak mogę utworzyć łącze javadoc do pola prywatnego?Jak połączyć javadoc z polem prywatnym?

class Foo { 
    private String bar; 
    public String getBar() { return bar; } 
} 

{@link Foo#getBar()} działa.

{@link Foo#bar} nie.

+6

Dlaczego chcesz połączyć javadoc coś końcowych użytkowników nie będzie w stanie zobaczyć? –

+0

Często używamy @link do zmiany nazwy javadocs, jeśli zmienię nazwę tego, co jest połączone. Pomyślałem więc, że jeśli kiedyś zmieniam nazwę "bar", javadoc automatycznie zaktualizuje się automatycznie. – membersound

+4

@ X.L.Ant ponieważ jest to dobre również dla ciebie, kiedy patrzysz w przyszłym roku na to prywatne pole, i nie masz pojęcia, co jest przeznaczone. Zwłaszcza, gdy javadoc z publicznego gettera dla tego, który zawiera tylko automatycznie utworzony komentarz javadoc: "getter method()" – AlexWien

Odpowiedz

77

Składnia jest w porządku, zarówno po pracy w klasie (i nie ma powodu, aby nie odwołuje się do prywatnego pola z innej klasy):

public class Demo { 
    private int num = 0; 
    /** 
    * Access field {@link Demo#num}/{@link #num} ... 
    */ 
    private void foo() { ... } 
... 

Po wygenerowaniu javadoc, na przykład, przez mrówki, wystarczy określić, że pola prywatne powinny być włączone (minimalny dostęp domyślny jest „zabezpieczony”, a nie „prywatny”):

<target name="javadoc" depends="compile" description="gen javadoc"> 
    <javadoc destdir="build/docs" 
      author="true" 
      version="true" 
      use="true" 
      access="private" 
      windowtitle="Demo API"> 

    <fileset dir="src/main" defaultexcludes="yes"> 
     <include name="com/**"/> 
    </fileset> 

    <doctitle><![CDATA[<h1>Test</h1>]]></doctitle> 
    <link offline="true" href="http://download.oracle.com/javase/6/docs/api/" packagelistLoc="doc"/> 
    </javadoc> 
</target> 
5

Myślę, że to, co piszecie w komentarzach, jest w porządku, wystarczy, że powiecie JavaDoc, aby w dokumentach znalazło się również prywatne pole. JavaDoc ma opcję -prywatną dla tego. Sprawdź this answer.