मैं जावा फ़ंक्शन के प्रोटोटाइप को लिखने की कोशिश कर रहा हूं जिसे किसी भी पूर्णांक और तारों के साथ बुलाया जा सकता है:विधि प्रोटोटाइप में varargs के लिए एकाधिक ऑब्जेक्ट प्रकार?
myMethod(1, 2, 3, "Hello", "World"); // Valid call
myMethod(4, "foo", "bar", "foobar"); // Valid call
आदर्श रूप से, मैं किसी भी क्रम में इंक और तारों को देना चाहता हूं (और संभवतः मिश्रित):
myMethod(1, "Hello", 2, "World", 3); // Valid call
मैंने varargs का उपयोग करने के बारे में सोचा, लेकिन प्रोटोटाइप में केवल एक ही हो सकता है। मेरे पास एक और विचार है जो निम्नलिखित प्रोटोटाइप का उपयोग करना है:
public void myMethod(Object ... objs) { [...] }
... लेकिन मुझे लगता है कि अगर संकलित प्रकारों के अलावा किसी अन्य चीज़ के साथ कहा जाता है तो संकलन त्रुटि होनी चाहिए। बेशक, एक रनटाइम चेक (instanceof
) किया जा सकता है, लेकिन यह एक बहुत ही सुरुचिपूर्ण समाधान नहीं होगा, है ना?
आप यह कैसे करेंगे?
यही वह था जिसे मैं डरता था। धन्यवाद, मैं तब ऑब्जेक्ट varargs का सहारा लेगा। – executifs