2009-07-04 19 views
16

एक विधि जो किसी अन्य विधि को ओवरराइड करता है वह उस विधि के दस्तावेज़ीकरण का उत्तराधिकारी नहीं है जो इसे ओवरराइड कर रहा है। दस्तावेज़ीकरण के उत्तराधिकारी के लिए इसे स्पष्ट रूप से बताने का कोई तरीका है?जावा प्रलेखन ओवरराइड विधि InheritDoc

/** 
    * {@inheritDoc} 
    * 
    * This implementation uses a dynamic programming approach. 
    */ 
@Override 
public int[] a(int b) { 
    return null; 
} 

उत्तर

22

javadoc documentation के अनुसार:

  • जब एक कक्षा में एक विधि एक ओवरराइड करता है:

    टिप्पणियों के विरासत वर्गों और इंटरफेस से विरासत के सभी तीन संभावित मामलों में होता है एक superclass

  • में विधि जब एक इंटरफेस में एक विधि superinterface में एक विधि ओवरराइड करता है
  • एक कक्षा में एक विधि एक अंतरफलक में एक विधि को लागू करता है जब

टिप्पणियां स्पष्ट रूप {@inheritDoc} टैग का उपयोग कर प्राप्त की जा सकती। यदि ओवरराइडिंग विधि के लिए कोई टिप्पणी प्रदान नहीं की जाती है, तो टिप्पणियां पूरी तरह विरासत में प्राप्त की जाएंगी। विरासत टिप्पणियों के पहलू (जैसे पैरा, रिटर्न वैल्यू इत्यादि) यदि आप चाहें तो ओवरराइड किया जा सकता है।

महत्वपूर्ण बात यह है कि आपको यह सुनिश्चित करने की आवश्यकता है कि टिप्पणी वाली कोड वाली स्रोत फ़ाइल को जावाडोक टूल पर उपलब्ध है। आप इसे sourcepath विकल्प का उपयोग करके कर सकते हैं।

5
the 1.4.2 Javadoc manual

विधि इनहेरिट के लिए एल्गोरिथ्म टिप्पणियों से

- एक विधि को दस्तावेज़ की टिप्पणी नहीं है, तो, या एक {@inheritDoc} टैग, किसी लागू टिप्पणी के लिए जावाडोक उपकरण खोजें निम्न का उपयोग कर है एल्गोरिथ्म, जो सबसे विशिष्ट लागू डॉक टिप्पणी को खोजने के लिए बनाया गया है, सुपर-क्लास से अधिक इंटरफेस को वरीयता देने के:

  1. क्रम में प्रत्येक सीधे लागू किया (या विस्तारित) इंटरफ़ेस में देखो वे निम्नलिखित दिखाई शब्द मैं विधि घोषणा में पूरक (या विस्तार)। इस विधि के लिए मिली पहली दस्तावेज़ टिप्पणी का प्रयोग करें।
  2. यदि चरण 1 कोई दस्तावेज़ टिप्पणी नहीं ढूंढ पाता है, तो प्रत्येक क्रमशः लागू (या विस्तारित) इंटरफ़ेस को इस पूरे एल्गोरिदम को उसी क्रम में लागू करें, उसी क्रम में उनकी जांच 1/
  3. यदि चरण 2 दस्तावेज़ ढूंढने में विफल रहा टिप्पणी और यह ऑब्जेक्ट (इंटरफ़ेस नहीं) के अलावा एक वर्ग है: 1. यदि सुपरक्लास के पास इस विधि के लिए दस्तावेज़ टिप्पणी है, तो इसका उपयोग करें। 2. यदि चरण 3 ए दस्तावेज़ टिप्पणी खोजने में विफल रहा है, तो सुपरक्लास पर इस पूरे एल्गोरिदम को पुन: लागू करें।

मेरा मानना ​​है कि (हालांकि मैं गलत हो सकता है) है कि इस बुनियादी एल्गोरिथ्म अभी भी जावा 1.5 और 1.6 पर लागू होता है ... हालांकि यह वास्तव में के लिए एक पूर्ण संयमी निश्चित दस्तावेज़ प्रकाशित करने के लिए सूर्य का बहुत अच्छा होगा टूलसेट के प्रत्येक संस्करण ... मुझे लगता है कि यह एक ओवरहेड है, वे कम से कम एक मुफ्त टूलसेट के लिए बर्दाश्त नहीं कर सकते हैं।

चीयर्स। कीथ।


संपादित करें:

यहां एक त्वरित और गंदे उदाहरण है।

कोड

package forums; 


interface Methodical 
{ 
    /** 
    * A no-op. Returns null. 
    * @param i int has no effect. 
    * @return int[] null. 
    */ 
    public int[] function(int i); 
} 


interface Methodological extends Methodical 
{ 
    /** 
    * Another no-op. Does nothing. 
    */ 
    public void procedure(); 
} 


class Parent implements Methodological 
{ 
    @Override 
    public int[] function(int i) { 
    return null; 
    } 

    @Override 
    public void procedure() { 
    // do nothing 
    } 

} 


class Child extends Parent 
{ 
    /** {@inheritDoc} */ 
    @Override 
    public int[] function(int i) { 
     return new int[0]; 
    } 

    /** {@inheritDoc} */ 
    @Override 
    public void procedure() { 
    System.out.println("I'm a No-op!"); 
    } 

} 


public class JavaDocTest 
{ 
    public static void main(String[] args) { 
    try { 
     new Child().procedure(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    } 
} 

जावाडोक

C:\Java\home\src\forums>javadoc -package -sourcepath . JavaDocTest.java 
Loading source file JavaDocTest.java... 
Constructing Javadoc information... 
Standard Doclet version 1.6.0_12 
Building tree for all the packages and classes... 
Generating forums/\Child.html... 
Generating forums/\JavaDocTest.html... 
Generating forums/\Methodical.html... 
Generating forums/\Methodological.html... 
Generating forums/\Parent.html... 
Generating forums/\package-frame.html... 
Generating forums/\package-summary.html... 
Generating forums/\package-tree.html... 
Generating constant-values.html... 
Building index for all the packages and classes... 
Generating overview-tree.html... 
Generating index-all.html... 
Generating deprecated-list.html... 
Building index for all classes... 
Generating allclasses-frame.html... 
Generating allclasses-noframe.html... 
Generating index.html... 
Generating help-doc.html... 
Generating stylesheet.css... 

उत्पादन file: /// C: /Java/home/src/forums/index.html

function 

public int[] function(int i) 

    A no-op. Returns null. 

    Specified by: 
     function in interface Methodical 
    Overrides: 
     function in class Parent 

    Parameters: 
     i - int has no effect. 
    Returns: 
     int[] null. 

procedure 

public void procedure() 

    Another no-op. Does nothing. 

    Specified by: 
     procedure in interface Methodological 
    Overrides: 
     procedure in class Parent 
+0

मेरे पोस्ट में संदर्भित जावाडोक दस्तावेज़ जे 2 एसई 1.6 रिलीज के लिए है। –

-2

जावा डॉक के साथ @ ओवरराइड स्वैप करें।

@Override 
    /** 
    * {@inheritDoc} 
    */ 
+3

इसका कोई प्रभाव नहीं है। – Bex

संबंधित मुद्दे