2011-12-14 13 views
23

मुझे पता है कि कैसे रनटाइम पर जावाडोक टिप्पणियों पढ़ने की जरूरत हैप्रतिबिंब द्वारा जावाडोक टिप्पणियों को कैसे पढ़ा जाए?

मैं निम्नलिखित कार्य हो कहो (शायद प्रतिबिंब द्वारा?):

/** 
* function that do some thing 
*/ 
public void myFunc() 
{ 

    //... 
} 

रनटाइम पर, मैं इस समारोह के बारे में अधिक से अधिक जानकारी प्राप्त कर सकते हैं प्रतिबिंब द्वारा .. लेकिन टिप्पणियां नहीं पढ़ सकते हैं। तो सवाल यह है कि रनटाइम पर javadoc टिप्पणियां कैसे पढ़ें।

+0

यहाँ 2 जवाब के बाद से कहते हैं कि वे के साथ किया जा नहीं कर सकते संकलित कोड, आप स्रोत कोड के साथ करने में सक्षम होना चाहिए। और ऐसा करने के लिए "स्रोत से javadoc निकालें" खोजने के लिए प्रयास करें और फिर कुछ ओपन सोर्स टूल प्राप्त करें और अपनी आवश्यकता के अनुसार इसे संशोधित करें। –

+0

मुझे लगता है कि @Puce के साथ जाना बहुत आसान है क्योंकि मैं स्रोत कोड का मालिक हूं! –

+1

वास्तविक प्रश्न यह है: आपको उन जावाडॉक्स के लिए क्या चाहिए? उपयोग का मामला क्या है? – Thomas

उत्तर

14

जावाडोक के बजाय एनोटेशन का उपयोग करने और एनोटेशन प्रोसेसर लिखने पर विचार करें।

16

आप नहीं कर सकते। उन्हें संकलित कोड से निकाल दिया जाता है।

7

आप ऐसा नहीं कर सकते हैं, क्योंकि जावडोक को अंतिम कक्षाओं में संकलित नहीं किया गया है।

30

Doclet वर्ग:

public class ExtractCommentsDoclet { 
    public static boolean start(RootDoc root) throws IOException { 
     for (ClassDoc c : root.classes()) { 
      print(c.qualifiedName(), c.commentText()); 
      for (FieldDoc f : c.fields(false)) { 
       print(f.qualifiedName(), f.commentText()); 
      } 
      for (MethodDoc m : c.methods(false)) { 
       print(m.qualifiedName(), m.commentText()); 
       if (m.commentText() != null && m.commentText().length() > 0) { 
        for (ParamTag p : m.paramTags()) 
         print(m.qualifiedName() + "@" + p.parameterName(), p.parameterComment()); 
        for (Tag t : m.tags("return")) { 
         if (t.text() != null && t.text().length() > 0) 
          print(m.qualifiedName() + "@return", t.text()); 
        } 
       } 
      } 
     } 
     return true; 
    } 

    private static void print(String name, String comment) throws IOException { 
     if (comment != null && comment.length() > 0) { 
      new FileWriter(name + ".txt").append(comment).close(); 
     } 
    } 
} 

और Maven निष्पादन: classpath से

<plugin> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <extensions>true</extensions> 
    <executions> 
     <execution> 
      <phase>compile</phase> 
      <goals> 
       <goal>aggregate</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <doclet>ExtractCommentsDoclet</doclet> 
     <docletPath>${project.build.directory}/classes</docletPath> 
     <reportOutputDirectory>${project.build.outputDirectory}/META-INF</reportOutputDirectory> 
     <useStandardDocletOptions>false</useStandardDocletOptions> 
    </configuration> 
</plugin> 

पढ़ें डॉक्स: META-INF/apidocs

+0

अच्छा, आप mdk में jdk से tools.jar कैसे शामिल करते हैं? – TecHunter

+0

हे, आप रनटाइम पर जावाडोक पढ़ना चाहते हैं? - कोई समस्या नहीं, कप्तान! मैं तुम्हारे लिए एक समाधान लिखूंगा! :-) लेकिन मुझे लगता है कि आप अपने उत्तर के अंत में एक प्रश्न चूक गए: - आपको ऐसा करने की आवश्यकता क्यों है? माइक्रोस्कोप का उपयोग करके नाखूनों को हथौड़ा बनाना संभव है लेकिन यह ऐसी चीजों को करने के लिए डिज़ाइन नहीं किया गया है) – 4ndrew

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