यह एक विधि है कि मानकों के परिवर्तनशील अनुमति देगा घोषित करने के लिए संभव है के लिए बहस?जावा चर संख्या या एक विधि
परिभाषा यह है कि संकेत मिलता है कि विधि मानकों के परिवर्तनशील अनुमति चाहिए में इस्तेमाल प्रतीकों क्या है?
उत्तर:
यह एक विधि है कि मानकों के परिवर्तनशील अनुमति देगा घोषित करने के लिए संभव है के लिए बहस?जावा चर संख्या या एक विधि
परिभाषा यह है कि संकेत मिलता है कि विधि मानकों के परिवर्तनशील अनुमति चाहिए में इस्तेमाल प्रतीकों क्या है?
उत्तर:
यह सही है varargs। आप the Oracle guide on varargs में इसके बारे में अधिक जानकारी प्राप्त कर सकते हैं।
यहाँ एक उदाहरण है:
void foo(String... args) {
for (String arg : args) {
System.out.println(arg);
}
}
जो
foo("foo"); // Single arg.
foo("foo", "bar"); // Multiple args.
foo("foo", "bar", "lol"); // Don't matter how many!
foo(new String[] { "foo", "bar" }); // Arrays are also accepted.
foo(); // And even no args.
हाँ ... के रूप में कहा जा सकता है जावा 5 के बाद से: http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
हाँ, यह संभव है:
public void myMethod(int...numbers) { ... }
Variable number of arguments
यह एक विधि के लिए तर्क के परिवर्तनशील पारित करने के लिए संभव है। हालांकि, वहाँ कुछ प्रतिबंध हैं:
इन प्रतिबंधों को समझने के लिए विधि पर विचार, निम्नलिखित कोड का टुकड़ा में, पूर्णांकों की एक सूची में सबसे बड़ा पूर्णांक वापस जाने के लिए इस्तेमाल किया
स्रोत Oracle सर्टिफिकेट एसोसिएट जावा SE 7 प्रोग्रामर अध्ययन गाइड 2012
आप तर्क के विभिन्न प्रकार का उपयोग कर सकते हैं, तो का उपयोग करें:
public void foo(Object... x) {
String first = x.length > 0 ? (String)x[0] : "Hello";
int duration = x.length > 1 ? Integer.parseInt((String) x[1]) : 888;
}
foo("Hii",);
foo("Hii", 146);
सुरक्षा के लिए
, इस तरह का उपयोग करें: if (!(x[0] instanceof String)) { throw new IllegalArgumentException("..."); }
इस दृष्टिकोण का मुख्य दोष यह है कि यदि वैकल्पिक पैरामीटर विभिन्न प्रकार के होते हैं तो आप स्थैतिक प्रकार की जांच खो देते हैं। कृपया, more variations देखते हैं।
हाँ जावा की अनुमति देता है विधि पैरामीटर में vargs।
class Varargs{public int add(int... numbers){ int result = 1; for(int number: numbers){result= result+numbers; } return result; }}
कर सकते हैं कृपया उत्तर देने के लिए लिंक का उपयोग न करें। लिंक मर सकते हैं लेकिन यदि आप अपनी पोस्ट में वास्तविक उत्तर शामिल करते हैं तो भविष्य की पीढ़ियों के लिए यह खोज योग्य होगा, अगर किसी के पास एक ही समस्या है। – Moseleyi
अपने गृहकार्य के बाद से, हम आपका प्रश्न नहीं जानना चाहते हैं, हम सिर्फ यह जानना चाहते हैं कि आप सीख रहे हैं। – HDave