यह पता लगाने के लिए कि क्या रास्ता लेना है, न केवल कॉमन्सवेयर के "क्यों" के महत्वपूर्ण प्रश्न का उत्तर देने की आवश्यकता है, बल्कि "क्या?" क्या आप इसे पारित कर रहे हैं
वास्तविकता यह है कि केवल एक चीज जो बंडलों के माध्यम से जा सकती है, वह है सादे डेटा - बाकी सब कुछ इस बात की व्याख्या पर आधारित है कि डेटा का अर्थ क्या है या किस ओर इशारा करता है। आप वस्तुतः एक वस्तु पास नहीं कर सकते, लेकिन आप जो कर सकते हैं वह तीन चीजों में से एक है:
1) आप ऑब्जेक्ट को उसके गठित डेटा तक तोड़ सकते हैं, और अगर दूसरे छोर पर उसी तरह की वस्तु का ज्ञान है, तो यह क्रमबद्ध डेटा से एक क्लोन को इकट्ठा कर सकता है। इस तरह से अधिकांश सामान्य प्रकार बंडल से गुजरते हैं।
2) आप एक अपारदर्शी संभाल कर सकते हैं। यदि आप इसे उसी संदर्भ में पारित कर रहे हैं (हालांकि कोई यह पूछ सकता है कि परेशान क्यों है) जो एक ऐसा हैंडल होगा जिसे आप लागू कर सकते हैं या आपत्ति कर सकते हैं। लेकिन अगर आप इसे बिंदर से एक अलग संदर्भ में पास करते हैं तो यह शाब्दिक मूल्य एक मनमाना नंबर होगा (वास्तव में, ये मनमाने संख्या क्रमिक रूप से स्टार्टअप से गिनते हैं)। आप कुछ भी नहीं कर सकते हैं, लेकिन इसका ध्यान रखें, जब तक आप इसे मूल संदर्भ में वापस नहीं भेजते हैं, जो इसे बाइंडर को मूल हैंडल में बदलने का कारण बनेगा, इसे फिर से उपयोगी बना देगा।
3) आप एक मैजिक हैंडल को पास कर सकते हैं, जैसे कि फाइल डिस्क्रिप्टर या कुछ ओएस / प्लेटफ़ॉर्म ऑब्जेक्ट्स के संदर्भ में, और यदि आप सही झंडे सेट करते हैं तो बाइंडर प्राप्तकर्ता के लिए उसी संसाधन की ओर इशारा करते हुए एक क्लोन बनाएगा, जिसका वास्तव में उपयोग किया जा सकता है दूसरा छोर। लेकिन यह केवल कुछ ही प्रकार की वस्तुओं के लिए काम करता है।
सबसे अधिक संभावना है, आप या तो अपनी कक्षा उत्तीर्ण कर रहे हैं, इसलिए दूसरा छोर इसका ट्रैक रख सकता है और इसे बाद में आपको वापस दे सकता है, या आप इसे एक ऐसे संदर्भ में दे रहे हैं, जहाँ अनुक्रमित घटक डेटा से एक क्लोन बनाया जा सकता है ... या फिर आप कुछ ऐसा करने की कोशिश कर रहे हैं जो सिर्फ काम नहीं कर रहा है और आपको पूरे दृष्टिकोण पर पुनर्विचार करने की आवश्यकता है।