it-swarm.asia

كيفية الرجوع إلى طريقة في javadoc؟

كيف يمكنني استخدام علامة @link للارتباط بأسلوب ما؟

اريد ان اتغير

/**
 * Returns the Baz object owned by the Bar object owned by Foo owned by this.
 * A convenience method, equivalent to getFoo().getBar().getBaz()
 * @return baz
 */
public Baz fooBarBaz()

إلى

/**
 * Returns the Baz object owned by the Bar object owned by Foo owned by this.
 * A convenience method, equivalent to {@link getFoo()}.{@link getBar()}.{@link getBaz()}
 * @return baz
 */
public Baz fooBarBaz()

لكنني لا أعرف كيفية تنسيق العلامة @link بشكل صحيح.

731
Jason S

ستجد الكثير من المعلومات حول JavaDoc في مواصفات تعليق الوثائق لـ Doclet قياسي ، بما في ذلك المعلومات الموجودة على

{link package.class # member label}

العلامة (التي تبحث عنها). المثال المقابل من الوثائق كما يلي

على سبيل المثال ، فيما يلي تعليق يشير إلى طريقة getComponentAt (int، int):

Use the {@link #getComponentAt(int, int) getComponentAt} method.

يمكن ommited الجزء package.class إذا كانت الطريقة المشار إليها في الفئة الحالية.


روابط مفيدة أخرى حول JavaDoc هي:

970
FrVaBe

التنسيق العام ، من قسم link في وثائق javadoc ، هو:

 {@link package.class#member label}

أمثلة

الطريقة في نفس الفئة:

/** See also {@link #myMethod(String)}. */
void foo() { ... }

الطريقة في فئة مختلفة ،إما في نفس الحزمة أو المستوردة:

/** See also {@link MyOtherClass#myMethod(String)}. */
void foo() { ... }

الطريقة في حزمة مختلفةوغير مستوردة:

/** See also {@link com.mypackage.YetAnotherClass#myMethod(String)}. */
void foo() { ... }

التسمية مرتبطة بالطريقة ، في نص عادي بدلاً من خط الرمز:

/** See also this {@linkplain #myMethod(String) implementation}. */
void foo() { ... }

سلسلة من المكالمات الأسلوب ، كما في سؤالك. يجب أن نحدد تسميات للروابط الخاصة بالطرق خارج هذه الفئة ، أو نحصل على getFoo().Foo.getBar().Bar.getBaz(). لكن هذه العلامات يمكن أن تكون هشة ؛ انظر "التسميات" أدناه.

/**
 * A convenience method, equivalent to 
 * {@link #getFoo()}.{@link Foo#getBar() getBar()}.{@link Bar#getBaz() getBaz()}.
 * @return baz
 */
public Baz fooBarBaz()

ملصقات

قد لا تؤثر إعادة التجهيز الآلي على الملصقات. يتضمن هذا إعادة تسمية الطريقة أو الفئة أو الحزمة ؛ وتغيير طريقة التوقيع.

لذلك ، قدم تسمية فقط إذا كنت تريد نصًا مختلفًا عن النص الافتراضي.

على سبيل المثال ، قد تقوم بالربط من اللغة البشرية إلى الكود:

/** You can also {@linkplain #getFoo() get the current foo}. */
void setFoo( Foo foo ) { ... }

أو يمكنك الارتباط من نموذج التعليمات البرمجية بنص مختلف عن الافتراضي ، كما هو موضح أعلاه تحت "سلسلة من مكالمات الطريقة". ومع ذلك ، يمكن أن يكون هذا هشًا بينما تتطور واجهات برمجة التطبيقات.

اكتب محو و # عضو

إذا كان توقيع الطريقة يتضمن أنواعًا ذات معلمات ، فاستخدم محو تلك الأنواع في javadoclink. فمثلا:

int bar( Collection<Integer> receiver ) { ... }

/** See also {@link #bar(Collection)}. */
void foo() { ... }
658
Andy Thomas

يمكنك استخدام @see للقيام بذلك:

عينة:

interface View {
        /**
         * @return true: have read contact and call log permissions, else otherwise
         * @see #requestReadContactAndCallLogPermissions()
         */
        boolean haveReadContactAndCallLogPermissions();

        /**
         * if not have permissions, request to user for allow
         * @see #haveReadContactAndCallLogPermissions()
         */
        void requestReadContactAndCallLogPermissions();
    }
14
vuhung3990