2010-11-18 12 views
19

जावा में कोई फ़ंक्शन बनाना संभव है जो किसी भी पैरामीटर का समर्थन करता है और फिर फ़ंक्शन को प्रदान किए गए प्रत्येक पैरामीटर के माध्यम से पुन: सक्रिय करने में सक्षम होता है?जावा: मैं एक ऐसा फ़ंक्शन कैसे बना सकता हूं जो किसी भी पैरामीटर का समर्थन करता हो?

धन्यवाद

Kfir

उत्तर

35

Java Varargs

इस तरह

...

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

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

public void func2(String s1, String ... strings) { 

} 
+0

कमाल! विस्तृत स्पष्टीकरण के लिए धन्यवाद :) – ufk

+0

अगर मुझे तर्क का प्रकार पता नहीं है? क्या मैं सिर्फ ऑब्जेक्ट का उपयोग कर सकता हूं? – ufk

+1

हां, आप ... – aioobe

6

varargs अन्य के रूप में बताया है आप का उपयोग कर सकते हैं:

void myMethod(Object... args) 

यह वास्तव में है इसके बराबर:

void myMethod(Object[] args) 

वास्तव में संकलक दूसरे फॉर्म को दूसरे स्थानांतरित करता है - बाइट कोड में कोई अंतर नहीं है। सभी तर्क एक ही प्रकार के होने चाहिए, इसलिए यदि आप विभिन्न प्रकारों के साथ तर्क का उपयोग करना चाहते हैं तो आपको ऑब्जेक्ट प्रकार का उपयोग करने और आवश्यक कास्टिंग करने की आवश्यकता है।