सबसे पहले, इसे Object
नाम न दें। Object
अन्य सभी वर्गों के लिए जावा की अंतर्निहित बेस क्लास है। तकनीकी रूप से, आप अपने इंटरफ़ेस Object
को तब तक नाम दे सकते हैं जब तक आप इसे पैकेज java.lang
पैकेज में न रखें, लेकिन यह अत्यधिक भ्रामक होगा।
ObjectA
और ObjectB
, उपयोग जेनरिक में getId()
के लिए विभिन्न प्रकार के रिटर्न प्रदान करने के लिए: हमेशा एक नंबर प्रदान करता है
public interface MyObject<T> {
T getId();
String getName();
}
public class ObjectA implements MyObject<Integer> {
@Override
public Integer getId() {
return 0;
}
@Override
public String getName() {
return "A";
}
}
public class ObjectB implements MyObject<Long> {
@Override
public Long getId() {
return 0;
}
@Override
public String getName() {
return "B";
}
}
तो getId()
, आप भी MyObject<T extends Number>
रूप MyObject
निर्धारित कर सकते हैं। ध्यान दें कि आप जेनेरिक के साथ मूल प्रकार int
और long
का उपयोग नहीं कर सकते हैं; आपको बॉक्स किए गए प्रकार Integer
और Long
का उपयोग करना होगा।
स्रोत
2015-07-16 13:13:14
धन्यवाद रॉबिन, यह उपयोगी है। कीवर्ड 'ऑब्जेक्ट' उदाहरण के लिए उदाहरण था –
हम 'सार्वजनिक इंटरफ़ेस MyObject <टी संख्या>> को जोड़कर इस समाधान को बेहतर बना सकते हैं क्योंकि हम उम्मीद करते हैं कि टाइप 'टी' एक संख्या हो। –
@ piotr.wittchen आप सही हैं; मेरे उत्तर के अंतिम अनुच्छेद पर एक नज़र डालें। ;) –