खोज…


टिप्पणियों

एक "varargs" विधि तर्क निर्दिष्ट विधि के कई तर्कों को निर्दिष्ट करने के लिए उस विधि के कॉलर्स को अनुमति देता है, प्रत्येक एक अलग तर्क के रूप में। यह आधार प्रकार के बाद तीन ASCII अवधियों ( ... ) द्वारा विधि घोषणा में निर्दिष्ट है।

विधि स्वयं उन तर्कों को एकल सरणी के रूप में प्राप्त करती है, जिनका तत्व प्रकार varargs तर्क का प्रकार है। सरणी स्वचालित रूप से बनाई गई है (हालांकि कॉलर्स को अभी भी अलग-अलग विधि तर्कों के रूप में कई मानों को पारित करने के बजाय एक स्पष्ट सरणी को पारित करने की अनुमति है)।

Varargs के नियम:

  1. वरार्स अंतिम तर्क होना चाहिए।
  2. विधि में केवल एक ही वर्ण हो सकता है।

आपको उपरोक्त नियमों का पालन करना चाहिए अन्यथा कार्यक्रम संकलन त्रुटि देगा।

एक varargs पैरामीटर निर्दिष्ट करना

void doSomething(String... strings) {
    for (String s : strings) {
        System.out.println(s);
    }
}

अंतिम पैरामीटर के प्रकार के तीन काल के बाद संकेत मिलता है कि अंतिम तर्क को एक सरणी के रूप में या तर्कों के अनुक्रम के रूप में पारित किया जा सकता है। वररग्स का उपयोग केवल अंतिम तर्क स्थिति में किया जा सकता है।

वर्गास मापदंडों के साथ काम करना

एक विधि परिभाषा के लिए एक पैरामीटर के रूप में varargs का उपयोग करना, किसी सरणी या तर्कों के अनुक्रम को पारित करना संभव है। यदि तर्कों का एक क्रम पारित किया जाता है, तो वे स्वचालित रूप से एक सरणी में बदल जाते हैं।

यह उदाहरण एक सरणी और तर्क का एक क्रम printVarArgArray() जो printVarArgArray() विधि में पारित किया जा रहा है, और उन्हें विधि के अंदर कोड में कैसे printVarArgArray() जाता है:

public class VarArgs {
    
    // this method will print the entire contents of the parameter passed in
    
    void printVarArgArray(int... x) {
        for (int i = 0; i < x.length; i++) {
            System.out.print(x[i] + ",");
        }
    }
    
    public static void main(String args[]) {
        VarArgs obj = new VarArgs();
        
        //Using an array:
        int[] testArray = new int[]{10, 20};
        obj.printVarArgArray(testArray); 
       
        System.out.println(" ");
        
        //Using a sequence of arguments
        obj.printVarArgArray(5, 6, 5, 8, 6, 31);
    }
}

आउटपुट:

10,20, 
5,6,5,8,6,31

यदि आप इस तरह से विधि को परिभाषित करते हैं, तो यह संकलन-समय की त्रुटियां देगा।

void method(String... a, int... b , int c){} //Compile time error (multiple varargs )

void method(int... a, String b){} //Compile time error (varargs must be the last argument 


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow