Java Academy · पाठ

instanceof के लिए पैटर्न मिलान

प्रकार जाँचते समय एक चर बाँधें

पाठ 1, कुल 4 में से13 चरण

instanceof के लिए पैटर्न मिलान, CoddyKit पर Java Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Java Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

instanceof के लिए प्रतिरूप मिलान

instanceof का पुराना उपयोग पहले जाँच और फिर कास्ट करने का था। प्रतिरूप मिलान जाँच और कास्ट को एक ही चरण में जोड़ देता है और जाँच सफल होने पर सही प्रकार का चर बाँध देता है।

पुराना दोहराव वाला कोड

पारंपरिक कोड पहले प्रकार की जाँच करता है और फिर नए चर में कास्ट करता है। यह दोहराव वाला होता है और इसमें गलती करना आसान होता है।

public class Main {
    public static void main(String[] args) {
        Object obj = "hello";
        if (obj instanceof String) {
            String s = (String) obj;
            System.out.println(s.length());
        }
    }
}

नया रूप

एक प्रकार प्रतिरूप चर को उसी पंक्ति में घोषित करता है: if (obj instanceof String s)। सत्य होने पर s में पहले से कास्ट किया हुआ मान होता है।

public class Main {
    public static void main(String[] args) {
        Object obj = "hello";
        if (obj instanceof String s) {
            System.out.println(s.length());
        }
    }
}

बाँधने वाला चर

चर s को प्रतिरूप चर कहा जाता है। यह वहाँ दायरे में रहता है जहाँ कंपाइलर सिद्ध कर सकता है कि प्रतिरूप का मिलान हुआ है, जिससे कोड छोटा और अधिक सुरक्षित बनता है।

शर्तों में इसका उपयोग

उसी if शर्त के भीतर आप && के बाद प्रतिरूप चर का उपयोग कर सकते हैं, क्योंकि उस शाखा में मिलान निश्चित होता है।

public class Main {
    public static void main(String[] args) {
        Object obj = "developer";
        if (obj instanceof String s && s.length() > 5) {
            System.out.println("Long string: " + s);
        }
    }
}

निषेध और प्रवाह-दायरा

निषेध के साथ दायरा समझदारी से बदलता है। if (!(obj instanceof String s)) return; के बाद चर s विधि के बाकी हिस्से में दायरे में रहता है, क्योंकि कोड तभी आगे बढ़ता है जब मिलान सफल हुआ हो।

public class Main {
    static int safeLength(Object obj) {
        if (!(obj instanceof String s)) {
            return -1;
        }
        return s.length();
    }

    public static void main(String[] args) {
        System.out.println(safeLength("abc"));
        System.out.println(safeLength(42));
    }
}

equals और रूपांतरण को बदलना

एक सामान्य उदाहरण साफ़-सुथरी equals पुनर्परिभाषा है: प्रकार की जाँच करें और एक ही पंक्ति में चर बाँधें, फिर फ़ील्ड की तुलना करें।

public class Main {
    static final class Point {
        final int x, y;
        Point(int x, int y) { this.x = x; this.y = y; }
        public boolean equals(Object o) {
            return o instanceof Point p && p.x == x && p.y == y;
        }
        public int hashCode() { return x * 31 + y; }
    }

    public static void main(String[] args) {
        System.out.println(new Point(1, 2).equals(new Point(1, 2)));
        System.out.println(new Point(1, 2).equals(new Point(3, 4)));
    }
}

मिश्रित प्रकार सँभालना

पैटर्न वाली क्रमबद्ध else if शाखाएँ आपको कई संभावित प्रकारों के आधार पर साफ़-सुथरे ढंग से चयन करने देती हैं।

public class Main {
    static String describe(Object obj) {
        if (obj instanceof Integer i) {
            return "int " + (i * 2);
        } else if (obj instanceof String s) {
            return "string of length " + s.length();
        } else {
            return "unknown";
        }
    }

    public static void main(String[] args) {
        System.out.println(describe(21));
        System.out.println(describe("hello"));
        System.out.println(describe(3.14));
    }
}

नल का कभी मिलान नहीं होता

instanceof पैटर्न नल के लिए असत्य होता है, ठीक पारंपरिक ऑपरेटर की तरह। इसलिए पैटर्न चर को कभी नल नहीं दिया जाता, जिससे सामान्य NullPointerException त्रुटियों का एक स्रोत समाप्त हो जाता है।

public class Main {
    public static void main(String[] args) {
        Object obj = null;
        if (obj instanceof String s) {
            System.out.println("matched: " + s);
        } else {
            System.out.println("null or not a String");
        }
    }
}

अधिक साफ़ और सुरक्षित कोड

पैटर्न मिलान अनावश्यक कास्ट हटाता है, दायरा सीमित करता है ताकि आप चर का गलत उपयोग न कर सकें, और लगभग अंग्रेज़ी जैसा पढ़ा जाता है। आधुनिक Java में यही पसंदीदा शैली है।

सब कुछ एक साथ

पैटर्न का उपयोग करके अलग-अलग इनपुट को प्रारूपित करने वाला एक छोटा चयनकर्ता।

public class Main {
    static String format(Object o) {
        if (o instanceof Double d) return String.format("%.1f", d);
        if (o instanceof Integer i) return Integer.toString(i);
        if (o instanceof String s && !s.isBlank()) return s.trim();
        return "n/a";
    }

    public static void main(String[] args) {
        System.out.println(format(3.14159));
        System.out.println(format(99));
        System.out.println(format("  spaced  "));
        System.out.println(format(null));
    }
}

त्वरित जाँच

instanceof पैटर्न की अपनी समझ जाँचिए।

पुनरावृत्ति

आपने instanceof के लिए पैटर्न मिलान सीखा।

  • यह प्रकार की जाँच और कास्ट को एक ही अभिव्यक्ति में मिला देता है।
  • पैटर्न चर का दायरा उस स्थान तक रहता है जहाँ मिलान सिद्ध हो चुका हो।
  • नल के लिए पैटर्न असत्य होते हैं, जिससे NullPointerException त्रुटियों से बचाव होता है।
  • यह equals ओवरराइड और प्रकार-आधारित चयन को सरल बनाता है।
शुरुआत निःशुल्क

एआई शिक्षक के साथ Java सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
104
पाठ
374

अक्सर पूछे जाने वाले प्रश्न

क्या “instanceof के लिए पैटर्न मिलान” पाठ निःशुल्क है?

हाँ—“instanceof के लिए पैटर्न मिलान” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Java Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“instanceof के लिए पैटर्न मिलान” में मैं क्या सीखूँगा?

प्रकार जाँचते समय एक चर बाँधें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Java Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Java Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Java Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“instanceof के लिए पैटर्न मिलान” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Java Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Java Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. instanceof के लिए पैटर्न मिलान
  2. Record पैटर्न
  3. नेस्टेड Record पैटर्न
  4. switch में पैटर्न
← Java Academy पर वापस जाएँ