2015-08-27 6 views
9

एंड्रॉइड का IntentCloneable लागू क्यों करता है? क्या इरादे कभी क्लोन किए जाते हैं?इरादा क्लोनबल लागू क्यों करता है?

इराद का clone() implementation टूट गया है क्योंकि यह super.clone() पर कॉल करने के बजाय निर्माता को आमंत्रित करता है। इरादे के उप-वर्गों को तोड़ने वाले व्यवहार के लिए गारंटी दी जाती है यदि कभी भी क्लोन किया गया हो (संबंधित Android bug)।

+0

यदि उपclass 'क्लोन()' को ओवरराइड नहीं करते हैं और वही काम करते हैं: अपनी प्रतिलिपि निर्माता को कॉल करें। --- मैं कहूंगा कि 'क्लोन() 'दोषपूर्ण है * वापसी प्रकार को' इरादा 'में नहीं बदलकर, कॉलर को कास्ट करने के लिए मजबूर करना, जावा टाइप सुरक्षा को बाईपास करना। – Andreas

उत्तर

0

आप clone() पर क्यों ध्यान देते हैं, क्या आपने कभी इसका उपयोग किया है (इरादे के लिए नहीं, लेकिन बिल्कुल)? यह जावा (http://www.artima.com/intv/bloch13.html) में टूटा हुआ है, मैं हमेशा इसके बजाय एक कॉपी कन्स्ट्रक्टर का उपयोग करता हूं।

इसके अलावा, जहां तक ​​मुझे याद है कि आप वास्तव में Intent का विस्तार नहीं कर सकते हैं। यदि आप ऐसा करते हैं और इस ऑब्जेक्ट के साथ Activity या Service शुरू करने का प्रयास करते हैं तो आपको android.os.BadParcelableException: ClassNotFoundException when unmarshalling मिल जाएगा।

तो, मुझे नहीं लगता कि आपको clone(), विशेष रूप से Intent एस के बारे में चिंता करनी चाहिए।

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