प्रकार के लिए कैसे जांचें?

एंड्रॉइड ऐप में मुझे अपनी संपर्क सूची से कुछ संपर्क मिल गए हैं। वे या तो ईमेल, फोन नंबर, या यहां तक ​​कि अन्य चीजें भी हो सकती हैं। अब मैं यह जांचना चाहता हूं कि यह किस प्रकार का है और उन्हें विशिष्ट क्रियाएं बांधें।

उदाहरण के लिए, यदि यह एक प्रकार vnd.android.cursor.item/email_v2 है, तो मैं केवल ईमेल फ़ील्ड के साथ एक पोस्ट संदेश भेजना चाहता हूं, और यदि यह एक प्रकार है vnd.android .cursor.item/phone_v2 मैं केवल फोन फ़ील्ड के साथ एक पोस्ट संदेश भेजना चाहता हूं।

कोई विचार है कि मैं इसे कैसे देख सकता हूं?

0
यदि मैं गलत नहीं हूं तो आप उन प्रकार स्ट्रिंग s (या उरी s?) हैं और आप शायद तब तुलना करें । कृपया एक कोड स्निपेट जोड़ें जो दिखाता है कि आपको किस प्रकार का प्रकार मिलता है और वास्तव में यह किस प्रकार का वैरिएबल प्रकार है/आप उन्हें कैसे उपयोग करने की योजना बना रहे हैं।
जोड़ा लेखक zapl, स्रोत
क्या आप का उदाहरण ढूंढ रहे हैं? email_v2 क्या है?
जोड़ा लेखक ꜱᴜʀᴇꜱʜ ᴀᴛᴛᴀ, स्रोत

2 उत्तर

मुझे लगता है कि जाने का रास्ता ओवरलोडिंग का उपयोग करेगा:
आप विभिन्न इनपुट पैरामीटर के साथ कई विधियों को लागू करते हैं लेकिन एक ही नाम, जैसे कि:

checkContact(email_v2 email){ do things with email }
checkContact(phone_v2 phone){ do things with phone }
checkContact(String s){do things with random string }

मुझे लगता है कि आप मेरा मुद्दा प्राप्त करते हैं।
यदि आप एक साधारण if-statement चाहते हैं, हालांकि:

if (contact instanceof vnd.android.cursor.item/email_v2){ do send }
0
जोड़ा
यह जावा में काम नहीं करता है। अधिभारित विधि संकलित समय पर पहले से ही चुनी गई है।
जोड़ा लेखक zapl, स्रोत
यह काम करता है यदि आप संकलन समय पर प्रकार जानते हैं लेकिन आप रनटाइम पर वास्तविक प्रकार के आधार पर विभिन्न विधियों को निष्पादित करने के लिए ओवरलोडिंग का उपयोग नहीं कर सकते: stackoverflow.com/questions/3883414 में अधिभारित विधियों के लिए देर से स्थिर बाध्यकारी का उपयोग करता है/& hellip; ( पकड़ें ब्लॉक हालांकि ऐसा करते हैं)
जोड़ा लेखक zapl, स्रोत
@ ज़ापल हम्म, मैंने आज जावा में ओवरलोडिंग का इस्तेमाल किया, मेरे लिए काम किया।
जोड़ा लेखक Lauri Piisang, स्रोत
@zapl ठीक है, धन्यवाद, मैं अब आपका बिंदु देखता हूं :) - मैं स्वयं जावा के लिए बहुत नया हूं (केवल एक सप्ताह से भी कम समय में इसके साथ काम करता हूं)
जोड़ा लेखक Lauri Piisang, स्रोत

आप अपने अलग-अलग प्रकार के लिए क्लास निरंतर CONTENT_ITEM_TYPE को जांचने का प्रयास कर सकते हैं, जैसे कुछ:

contact.CONTENT_ITEM_TYPE.equals("vnd.android.cursor.item/email_v2");
0
जोड़ा