- 2023/9/19 को रिलीज़ होने वाला Java 21 switch blocks और expressions में record patterns को सपोर्ट करता है, जो Java को Kotlin, Rust, और C# जैसे functional programming patterns के और करीब लाने वाला एक महत्वपूर्ण अपडेट है
- पिछले 10 वर्षों में Java तेज़ी से विकसित हुआ है, और Java 9 के बाद से हर 6 महीने में बड़े अपडेट आए हैं
- Java 21 record patterns और switch pattern matching को स्थिर बनाता है, जिससे functional programming के एक मुख्य तत्व, algebraic data types, को व्यक्त करना संभव हो जाता है
- algebraic data types की अवधारणा को set theory की एक शाखा, type theory, के माध्यम से समझाया जाता है
- नया वर्ज़न pattern matching नाम की एक सुविधा भी पेश करता है, जिसके ज़रिए खास data patterns का static verification संभव हो जाता है
- Java 21 sealed classes या interfaces भी पेश करता है, जिससे developers library API के साथ user interaction को नियंत्रित कर सकते हैं
- sealed classes या interfaces Sum type नाम की अवधारणा पर आधारित design patterns को सपोर्ट करते हैं, जिसका मतलब है कि किसी समय एक type अपने घटकों में से केवल एक हो सकता है
- नया वर्ज़न switch statements और expressions के भीतर जटिल शर्तों को संक्षेप में व्यक्त करने के लिए guard clauses भी उपलब्ध कराता है
- Java 21
java.lang.MatchException नाम की एक नई exception class पेश करता है, जो pattern match के गलत होने पर होती है
- यह लेख Java 21 में switch blocks के उपयोग और उन तरीकों पर चर्चा करता है जिनसे कुछ खास परिस्थितियों में
MatchException पैदा हो सकता है
- जब switch block selector और किसी भी निर्दिष्ट variant में से किसी से मेल नहीं खाता, तब
MatchException होता है, और इसे बहुत असामान्य माना जाता है
- Java Enhancement Proposal (JEP) 441 यह स्वीकार करता है कि हमेशा exception फेंकने वाले record accessor methods बहुत असामान्य होते हैं
- यह लेख guard clause में 0 से भाग देने की त्रुटि के कारण
MatchException उत्पन्न करने वाले switch block का उदाहरण देता है
- लेखक बताते हैं कि जब division operation में dividend एक dynamic value हो सकता है, तब स्थिति और जटिल हो जाती है
- यह लेख Java 21 की नई सुविधाओं और क्षमताओं को खोजने वाली एक श्रृंखला का हिस्सा है, और आगे चलकर यह दिखाएगा कि इन विशेषताओं का उपयोग Java code लिखने को बेहतर बनाने के लिए व्यावहारिक उदाहरणों के साथ कैसे किया जा सकता है
- लेखक उल्लेख करते हैं कि कुछ खास विषय, जैसे generics का switch patterns के साथ interaction, इस लेख में शामिल नहीं हैं, लेकिन भविष्य के लेखों में लिए जा सकते हैं
- यह लेख JVM pattern matching, functional programming, Java 21, और algebraic types में रुचि रखने वालों के लिए प्रासंगिक है
अभी कोई टिप्पणी नहीं है.