आप सामान्य प्रकार पैरामीटर वाले सुपरर्ट टाइप से प्राप्त करने में सक्षम हैं। उदाहरण के लिए:
public class MyStringList extends AbstractList<String>
आप एक वर्ग एक वाइल्डकार्ड महाप्रकार है कि परिभाषित करने में सक्षम नहीं हैं:
public class MyList<T> extends AbstractList<T>
(या यहां तक कि मानकों सीमा, उदा दें)। ऐसी अवधारणा जावा में कोई समझ नहीं लेती है (और मुझे विश्वास नहीं है कि यह सार में बहुत अधिक मूल्य है)। आपके MonitoredDevice
उदाहरण में, मुझे यह भी सुनिश्चित नहीं है कि आप वहां किस कार्यक्षमता की अपेक्षा करते हैं।
मिटाए जाने के कारण जावा काम करने के मौलिक स्तर पर यह संभव नहीं है। प्रत्येक वर्ग में एक सुपरक्लास होना चाहिए - MonitoredDevice
का सुपरक्लास क्या है? MonitoredDevice
ऑब्जेक्ट पर कौन सी विधियां उपलब्ध हैं? आप इस वर्ग पर किसी भी विरासत विधियों को कॉल करने में सक्षम नहीं होंगे क्योंकि संकलक ऐसी विधियों की गारंटी नहीं दे सका, और न ही बाइटकोड ऐसी कॉल का प्रतिनिधित्व कर सकता है।
मुझे संदेह है कि आप जो करने की कोशिश कर रहे हैं उसे dynamic proxies के साथ बेहतर तरीके से हासिल किया जा सकता है।
संपादित करें: ठीक है, लेख को पूरी तरह पढ़ने के बाद मैं देख सकता हूं कि इस तरह की घोषणा के पीछे प्रेरणा क्या होगी। लेकिन लेख को पूरी तरह पढ़ने के बाद, आप यह भी महसूस करते हैं कि वर्तमान में जावा द्वारा समर्थित नहीं है। मौलिक कारण क्यों मिटाने के कारण है; इस तरह की तकनीक वर्तमान मैकेनिक्स के तहत कभी भी संभव नहीं होगी, और यह लेख बहुत अधिक विस्तार से चला जाता है जो विशेष रूप से इसे काम करने से रोकता है।
स्रोत
2010-01-04 16:36:29
क्या आप हमें अपने कोड से घोषणा दिखा सकते हैं ... लगता है जैसे आप गलत वाक्यविन्यास का उपयोग कर रहे हैं। –