2013-10-15 12 views
6

मैं जावा में एक सामान्य प्रकार के सुरक्षित पर्यवेक्षक लिखना चाहता हूं। सी ++ में, मैं यह C++ 11 से, निम्नलिखित की तरह variadic टेम्पलेट का उपयोग करके आसानी से कर सकते हैं:जावा में सी ++ वैरिएडिक टेम्पलेट्स के समतुल्य

class Observer<typename... T> 
{ 
    void update(T... args); 
}; 

अब, जावा में, सबसे अच्छा मैं कर सकता है:

class Observer<T> 
    { 
     void update(T args); 
    }; 

अब, अद्यतन C++ में विभिन्न प्रकार के कई तर्क नहीं ले सकते हैं। क्या कोई इस समस्या का समाधान सुझा सकता है?

अग्रिम धन्यवाद।

+0

मैं वास्तव में आपकी समस्या को समझ नहीं पा रहा हूं। 'शून्य अद्यतन (टी ... तर्क) का उपयोग क्यों न करें;'? – Daniel

+1

सभी तर्क उनके उपयोग के मामले में एक ही प्रकार के जरूरी नहीं हैं। –

उत्तर

4

सभी तर्कों का विस्तार/यदि लागू टी आप कह सकते हैं:

class Observer<T>{ 
     void update(List<? extends T> args){} 
} 
+2

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

+0

सलाह के लिए धन्यवाद। मैंने अपना जवाब अपडेट किया –

0

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

संबंधित मुद्दे