2016-10-31 8 views
10

कैसे आप में args पैरामीटर की सामग्री का दस्तावेजीकरण के बारे में जाना है: बजाय कैसेकैसे जावा में आर्ग दस्तावेज़ के लिए मुख्य

public static void main(String[] args) { 
    ... 
} 

मैं कैसे जावाडोक में @param ब्लॉक टैग का उपयोग करने के बारे में पूछ नहीं हूँ, लेकिन दस्तावेज करने के लिए कि सरणी में प्रत्येक आइटम की सामग्री क्या होनी चाहिए।

उदाहरण के लिए: "तर्क [1] चौड़ाई है, तर्क [2] ऊंचाई है, आदि"।

<ol><li></li></ol> जाने का रास्ता है?

+2

एक विचार यह है कि 'मुख्य' (यानी, एक सीएलआई प्रोग्राम) के मामले में, अधिकांश उपयोगकर्ता स्रोत कोड नहीं पढ़ेंगे। कमांड-लाइन तर्कों को पार्स करने में आपकी सहायता के लिए गेटो-स्टाइल लाइब्रेरीज़ हैं, और उनमें से कुछ प्रिंटिंग उपयोग जानकारी (जैसे अमान्य इनपुट या '--help' के मामले में) के लिए सुविधा समर्थन प्रदान करते हैं। – chrylis

+1

इस – Antoniossss

+3

को संभालने के लिए जेकॉमेंडर का उपयोग करें कि स्थितित्मक तर्क ('तर्क [1] 'का मतलब है foo,' args [2] 'मतलब बार, आदि) नामांकित तर्कों से बहुत कम मजबूत हैं (' --foo = ... ' , '--bar = ... 'आदि), चूंकि आप तर्क जोड़ और निकाल सकते हैं, लेकिन फिर दस्तावेज़ों में उन्हें फिर से भरना भूल जाते हैं - या बदतर, आप उन्हें स्क्रिप्ट में पके हुए हैं जो आपके कोडबेस के चारों ओर बिखरे हुए हैं, और फिर आपको उन सभी को अपडेट करना होगा। –

उत्तर

5

आप केवल तर्कों का वर्णन करते हुए अपने जावाडोक के भीतर कुछ पाठ लिखकर, अनौपचारिक तरीके से ऐसा कर सकते हैं।

अर्थ: यहां कोई एकल, सही दृष्टिकोण नहीं है।

दूसरे शब्दों में: आपको उस विकल्प का उपयोग करना चाहिए, जो आपके लिए सबसे अच्छा काम करता है, और आपकी टीम/प्रोजेक्ट के अन्य लोग।

यदि आपकी "टीम स्टाइलगाइड" आपको जावा टैग्स का उपयोग javadoc में उपयोग करने की अनुमति देता है, तो HTML टैग का उपयोग करें। यदि आपकी टीम के पास कुछ और परिष्कृत दृष्टिकोण है जो किसी प्रकार के मार्कडाउन भाषा की अनुमति देता है, तो इसका उपयोग करें। अन्यथा, आपको शायद कुछ हिस्सों को हाइलाइट करने के लिए केवल {@code} का उपयोग करना चाहिए।

लंबी कहानी लघु: यहां कोई सटीक नियम नहीं है; तो आपको अपनी जरूरतों को सबसे अच्छी तरह से फिट करना चाहिए

लेकिन ध्यान रखें: शायद जावाडोकअंत में इतना महत्वपूर्ण नहीं है। यदि आपको लगता है कि आपका आवेदन सीधे कमांड लाइन से उपयोग किया जाता है, तो आपके मुख्य फोकस की तुलना में यह होना चाहिए कि "जावा -जर yourjar --help" जैसे कुछ उचित आउटपुट देता है। और यह कि आप "तर्क" पार्सिंग के मामले में पहिया का पुन: आविष्कार नहीं करते हैं। दूसरे शब्दों में: वहां कुछ पुस्तकालय हैं जो आप कमांड-लाइन-पार्सिंग के लिए उपयोग कर सकते हैं। और मुझे पूरा यकीन है कि उन्हें को कमांड लाइन उपयोगकर्ताओं के संभावित तर्कों के लिए समर्थन देना चाहिए।

मैं जो कह रहा हूं वह है: "सामान्य" सेटअप में, मैं उम्मीद करता हूं कि आपकी मुख्य विधि का आह्वान करने में रुचि रखने वाले लोग javadoc पढ़ रहे होंगे। वे समझने के लिए कुछ सहायता स्क्रीन देखना चाहते हैं कि वे किस विकल्प का उपयोग कर सकते हैं!

2

आप जावा ढांचे की सीमा पर हैं। main पर तर्क होस्ट रनटाइम पर्यावरण द्वारा चरित्र तारों की सरणी के रूप में प्रदान किए जाते हैं। इन तारों के अर्थ को परिभाषित करने के लिए आपको कोड लिखना होगा। आपके द्वारा लिखे गए अन्य तरीकों के लिए, आप उस विधि में प्रत्येक इनपुट का प्रतिनिधित्व करने के लिए कई तर्क घोषित करेंगे और प्रत्येक तर्क को दस्तावेज करने के लिए @param जावाडोक वाक्यविन्यास का उपयोग करेंगे।

देखें कि अन्य लोग इसे कैसे करते हैं: String.format - हालांकि यह vararg वाक्यविन्यास का उपयोग करता है, यह एक सरणी में परिवर्तित हुड के नीचे है।

अपने प्रश्न का उत्तर देने के लिए: ऐसा करने का कोई भी सही तरीका नहीं है।

2

आप apache-commons-cli usage दस्तावेज को देखना चाहते हैं जो जावा समुदाय में क्लि-प्रोसेसिंग के लिए एक सामान्य पुस्तकालय के रूप में कार्य करता है।

अपाचे कॉमन्स सीएलआई लाइब्रेरी प्रोग्रामिंग में लाइन विकल्प पार्सिंग कमांड के लिए एक एपीआई प्रदान करता है। यह कमांड लाइन टूल के लिए उपलब्ध विकल्पों का विवरण देने में सहायता संदेश प्रिंट करने में भी सक्षम है।

आखिरी बयान आप जो पूछ रहे हैं उसके साथ गूंजता है।

  1. POSIX विकल्प की तरह (। यानी टार -zxvf foo.tar.gz)
  2. जीएनयू लंबे विकल्प की तरह (यानी डु --human: यहाँ कमांड लाइन प्रसंस्करण संभावनाओं के विभिन्न रूपों आम-CLI समर्थन कर रहे हैं। -readable --max गहराई = 1)
  3. जावा गुण की तरह (यानी। जावा -Djava.awt.headless = सच -Djava.net.useSystemProxies = सच फू) संलग्न मूल्य के साथ
  4. लघु विकल्प (यानी। जीसीसी -ओ 2 foo.c)
  5. एकल हाइफ़न (यानी एंटी-प्रोजेक्टहेल्प) के साथ लंबे विकल्प

यदि आप अपना खुद का कार्यान्वयन करना चाहते हैं, तो भी आप उनके दस्तावेज़ों से संकेत ले सकते हैं।

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