को देखते हुए चर:एक वैरिएटिक विधि कैसे बनाएं एक सरणी को varargs सरणी के पहले मान के रूप में लेते हैं?
Object[] ab = new Object[] { "a", "b" };
Object[] cd = new Object[] { "c", "d" };
जब निम्न विधि बुला:
public static void m(Object... objects) {
System.out.println(Arrays.asList(objects));
}
का उपयोग करना:
[[Ljava.lang.Object;@3e25a5, [Ljava.lang.Object;@19821f]
:
m(ab, cd);
मैं उम्मीद आउटपुट प्राप्त लेकिन जब का उपयोग कर:
m(ab);
मैं:
[a, b]
strings <- ab
के बाद से और नहीं strings[0] <- ab
।
मैं कैसे बल संकलक strings
सरणी के पहले मान के रूप में ab
सरणी लेने के लिए कर सकते हैं, और फिर उत्पादन होने:
[Ljava.lang.Object;@3e25a5
?
'ऑब्जेक्ट []' को स्वीकार करने और इसे 'एम' में पास करने वाला अधिभार यहां एक कामकाज हो सकता है। –
@defaultlocale आप बाइटकोड स्तर पर ऐसे अधिभार का प्रतिनिधित्व नहीं कर सकते हैं क्योंकि इसका परिणाम डुप्लिकेट हस्ताक्षर होगा। –
@MarkoTopolnik इस बात को इंगित करने के लिए धन्यवाद। हाथ से एक कंपाइलर नहीं था, इस प्रकार, एक मूर्ख टिप्पणी। –