मुझे लगता है कि सरकारी documentation आप (एक काफी अविशिष्ट रास्ते में यद्यपि) इस एक का जवाब देता है:
इस विधि जावा भाषा ऑपरेटर instanceof के गतिशील बराबर है।
मैं इसका मतलब यह मानता हूं कि isInstance()
मुख्य रूप से रनटाइम पर टाइप प्रतिबिंब से निपटने वाले कोड में उपयोग के लिए है। विशेष रूप से, मैं कहूंगा कि यह उन मामलों को संभालने के लिए मौजूद है जहां आप पहले से ही कक्षा (एस) के प्रकार (ओं) के बारे में नहीं जानते हैं जिन्हें आप पहले से सदस्यता की जांच करना चाहते हैं (दुर्लभ हालांकि उन मामलों में शायद)।
उदाहरण के लिए, यदि आप इसका इस्तेमाल कर सकते हैं एक विधि है, तो दो मनमाने ढंग से टाइप किया वस्तुओं, असाइनमेंट संगत हैं की तरह देखने के लिए जाँच करता है कि लिखने के लिए:
public boolean areObjectsAssignable(Object left, Object right) {
return left.getClass().isInstance(right);
}
सामान्य तौर पर, मैं कहना चाहता हूँ कि instanceof
का उपयोग कर किया जाना चाहिए जब भी आप उस वर्ग की तरह जानते हैं जिसे आप पहले से जांचना चाहते हैं तो उसे पसंद किया जाता है। उन दुर्लभ मामलों में जहां आप नहीं करते हैं, इसके बजाय isInstance()
का उपयोग करें।
यदि आप एक प्रश्न को डुप्लिकेट के रूप में बंद करने जा रहे हैं, तो कम से कम पहले के प्रश्नों का हवाला देते हैं। – user949300