जावा-<T extends Comparable<T>>
का अर्थ?
क) Comparable <T>
एक सामान्य इंटरफेस (याद यह एक "इंटरफेस" अर्थात नहीं एक "वर्ग" है)
ख) extends
कक्षा या एक अंतरफलक से विरासत का मतलब है।
ऊपर कहा बिंदु # एक से, यह एक अंतरफलक है .. (याद रखें कि यह एक "वर्ग" से नहीं एक "इंटरफेस" यानी से एक विरासत है)
ग) से ऊपर कहा दोनों अंक # & # बी,
यहां "एक इंटरफ़ेस" "दूसरा इंटरफ़ेस" बढ़ाता है।
इस कक्षा के लिए एक इंटरफ़ेस परिभाषित किया जाना चाहिए .. सिर्फ एक उदाहरण यहां
interface MinMax<T extends Comparable<T>> {
T min();
T max();
}
घ) अब अपने वर्ग यानी public class RClass {}
चािहए
1 # या तो "लागू" इस "सामान्य इंटरफ़ेस" Comparable<T>
.. !!!
पूर्व: public class RClass<T> implements Comparable<T>
2 # या एक अंतरफलक बना सकते हैं और इस "सामान्य इंटरफ़ेस" Comparable<T>
पूर्व तक का:
interface MinMax<T extends Comparable<T>> {
T min();
T max();
}
class RClass<T extends Comparable<T>> implements MinMax<T> {
.....
.....
}
यहाँ, विशेष ध्यान देने की जिस तरह से करने के लिए भुगतान कि प्रकार पैरामीटर टी RClass और द्वारा घोषित किया गया है तो MinMax
पर पास किया गया। क्योंकि MinMax
को Comparable
लागू करता है, कार्यान्वयन वर्ग (इस मामले में RClass) को एक ही बाध्य निर्दिष्ट करना आवश्यक है। इसके अलावा, एक बार यह बाध्य स्थापित हो जाने के बाद, इसे लागू खंड में फिर से निर्दिष्ट करने की आवश्यकता नहीं है।
स्रोत
2014-01-07 09:59:59
नोट, '<टी तुलनात्मक super T>> '(मुझे लगता है कि आप वहां ऐसा कर सकते हैं) बढ़ाएंगे, क्योंकि आप' टी 'को' तुलनात्मक 'के कार्यान्वयन से अधिक सटीक होना चाहते हैं। –
@ टॉमहॉविन-टाइललाइन क्या आप इसका उदाहरण दे सकते हैं कि यह क्यों आवश्यक हो? मान लें कि मेरे पास मेरी सूची डेटा संरचना है जो केवल तुलनात्मक प्रकारों के साथ काम करती है। जिस तरह से मैं इसे निर्दिष्ट करता हूं वह सार्वजनिक वर्ग MyList> बढ़ाता है। मुझे लगता है कि यह बताएगा और लागू करेगा कि मेरी डेटा संरचना केवल तुलनीय प्रकारों के साथ काम करती है, आपके वाक्यांश में कोई फर्क कैसे पड़ता है? –
committedandroider