जावा instanceof
ऑपरेटर का उपयोग यह जांचने के लिए किया जाता है कि ऑब्जेक्ट निर्दिष्ट प्रकार (वर्ग या उपवर्ग या इंटरफ़ेस) का एक उदाहरण है या नहीं।
Java में instof को टाइप के comparison operator
रूप में भी जाना जाता है क्योंकि यह टाइप के साथ इंस्टेंस की तुलना करता है। वह true
या तो लौटता है या false
। यदि हम instanceof
ऑपरेटर को किसी भी वैरिएबल के साथ लागू करते हैं जिसका null
मूल्य है, तो वह वापस आ जाता है false
।
JDK 14+ से जिसमें JEP 305 शामिल है, हम इसके लिए "पैटर्न मिलान" भी कर सकते हैंinstanceof
पैटर्न मूल रूप से परीक्षण करते हैं कि एक मूल्य का एक निश्चित प्रकार है, और जब यह मिलान प्रकार होता है तो मूल्य से जानकारी निकाल सकता है। पैटर्न मिलान एक प्रणाली में सामान्य तर्क की अधिक स्पष्ट और कुशल अभिव्यक्ति की अनुमति देता है, अर्थात् वस्तुओं से घटकों का सशर्त निष्कासन।
जावा 14 से पहले
if (obj instanceof String) {
String str = (String) obj; // need to declare and cast again the object
.. str.contains(..) ..
}else{
str = ....
}
जावा 14 संवर्द्धन
if (!(obj instanceof String str)) {
.. str.contains(..) .. // no need to declare str object again with casting
} else {
.. str....
}
हम टाइप चेक और अन्य शर्तों को भी एक साथ जोड़ सकते हैं
if (obj instanceof String str && str.length() > 4) {.. str.contains(..) ..}
instanceof
जावा प्रोग्राम में स्पष्ट मिलान की कुल संख्या को कम करने के लिए पैटर्न मिलान का उपयोग करना चाहिए।
पुनश्च : instanceOf
केवल तभी मेल खाएगा जब वस्तु अशक्त न हो, तभी उसे सौंपा जा सकता है str
।