2012-02-18 12 views
8

मैं अपने पाठ्यपुस्तक में एक शुरुआत प्रोग्रामर हूँ और यह भर में आया था:डेटा प्रकार के आसपास पेंटिचेस?

public boolean equals(DataElement otherElement) 
{ 
    IntElement temp = (IntElement) otherElement;    
    return (num == temp.num); 
} 

IntElementDataElement का एक उपवर्ग है। num एक संलग्न सूची के लिए एक मूल्य भंडारित एक int है।

(IntElement) का उद्देश्य temp =?IntElement temp = otherElement के साथ क्या गलत होगा? और, सामान्य रूप से, डेटा प्रकार को कोष्ठक में डालने से क्या होता है?

उत्तर

8

यह कास्टिंग कहा जाता है, यहाँ देख

IntElement temp = (IntElement) otherElement; 

आप सच है कि आप के रूप में otherElement घोषित की अनदेखी करने के लिए कह रहे हैं संकलक DataElement और आपको विश्वास है कि यह IntElement होगा औरनहीं होगाया DataElement के कुछ अन्य उप-वर्ग।

आप इस तरह से आप otherElement बनाना होगा, जो के रूप DataElement कुछ अन्य तत्व हो जाते हैं, इस मामले IntElement में परिभाषित किया गया था के रूप में सिर्फ IntElement temp = otherElement; नहीं कर सकते। टाइप-सुरक्षा के लिए यह एक बड़ा झटका होगा, जो कारणों को पहले स्थान पर परिभाषित किया गया है।

यह तकनीकी रूप से प्रकार निष्कर्ष का उपयोग किया जा सकता है:

हालांकि जावा का समर्थन नहीं करता है और आप स्पष्ट होना चाहिए।

  • ऑपरेटर्स/TheinstanceofKeyword.htm "> http://www.java2s.com/Tutorial:

    यदि यह अन्य तत्वों प्राप्त करना संभव है, आप कास्टिंग से पहले प्रकार क्रम की जाँच करने के instanceof उपयोग कर सकते हैं/जावा/0060_Operators/TheinstanceofKeyword।htm

कुछ बिंदु के बाद आप इस के माध्यम से जाने पर, आप जेनरिक पर एक नज़र लेने के लिए भी चाहते हो सकता है:

1

(IntElement) otherElement प्रकार DataElement टाइप करने के लिए IntElement

इस लिंक को अधिक विस्तृत विवरण के लिए के बारे में Java Types and Type Conversion (Casting) चेक बाहर का है जो डाले।

2

temp के बाद (IntElement) के प्रयोजन के एक प्रकार रूपांतरण प्रदर्शन कर रहा है, और अधिक तकनीकी रूप से, एक डाली है, जहां आप कह रहे हो कि otherElement, जो प्रकार DataElement की एक पैरामीटर है, और अधिक ठोस का एक उद्देश्य के रूप में लिया जाना चाहिए IntElement टाइप करें। मूल रूप से

, ऐसा करके:

1
है

जेमेइन सही है, यह एक चर प्रकार को दूसरे में बदलने के लिए कंपाइलर/दुभाषिया को बताता है। हकीकत में यह सिर्फ प्रोसेसर को इसे दूसरे प्रकार के रूप में पेश करने के लिए कह रहा है। सी में यह एक आशीर्वाद और शाप है, जावा में, आप क्या लिख ​​रहे हैं, आपको इसे अलग-अलग इलाज करने के लिए चर डालना होगा।

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