जावा रिकॉर्ड की शुरूआत ने डेवलपर्स को एक नई डेटा संरचना प्रदान की है जो डेटा ऑब्जेक्ट के प्रबंधन और निर्माण को सरल बनाती है। रिकॉर्ड पैटर्न और नेस्टेड पैटर्न के नवीनतम जोड़ के साथ, रिकॉर्ड प्रबंधन और भी अधिक कुशल और गतिशील हो गया है।
आइए बुनियादी बातों की समीक्षा करके शुरुआत करें - एक रिकॉर्ड पारंपरिक कक्षाओं का एक हल्का विकल्प है जो अंतर्निहित एक्सेसर विधियों के साथ डेटा के लिए एक पारदर्शी वाहक के रूप में कार्य करता है। इसका मुख्य उद्देश्य जटिल व्यवहारों को लागू करने के बजाय डेटा को बनाए रखना है।
हालाँकि, जावा 21 में रिकॉर्ड पैटर्न की शुरूआत के साथ, पारंपरिक इंस्टेंस-एंड-कास्ट मुहावरे को सरल बना दिया गया है। यह जाँचने के बजाय कि क्या कोई वस्तु किसी विशिष्ट रिकॉर्ड वर्ग का उदाहरण है और फिर उसे उसके घटकों का उपयोग करने के लिए कास्टिंग करना है, अब हम दोनों चरणों को संयोजित करने के लिए एक रिकॉर्ड पैटर्न का उपयोग कर सकते हैं। उदाहरण के लिए, इसे लिखने के बजाय:
if (obj instanceof String) { String name = (String)obj; ... use name ... } In Java 21, we can simply write: if (obj instanceof String name) { ... use name ... }
यह कोड को अधिक संक्षिप्त और कम त्रुटि-प्रवण बनाता है, क्योंकि प्रकार पैटर्न स्ट्रिंग एस का उपयोग ओबीजे के मूल्य के खिलाफ मिलान करने के लिए किया जाता है और पैटर्न वैरिएबल एस को ओबीजे के मूल्य पर प्रारंभ किया जाता है जिसे स्ट्रिंग में डाला गया है।
इसके अलावा, जावा 21 नेस्टेड पैटर्न भी पेश करता है, जो नेस्टेड रिकॉर्ड जैसे अधिक जटिल ऑब्जेक्ट ग्राफ़ के मिलान और अपघटन की अनुमति देता है। मान लीजिए कि हमारे पास निम्नलिखित घोषणाएँ हैं:
Record BankAccount(String accountNumber, String accountHolder, double balance) {} Record Transaction(String transactionId, double amount, String type, String timestamp) {} Record BankStatement(Listtransactions, BankAccount account) {}
अब हम बैंकस्टेटमेंट ऑब्जेक्ट से कुल लेनदेन राशि की गणना करने के लिए एक नेस्टेड रिकॉर्ड पैटर्न का उपयोग निम्नानुसार कर सकते हैं:
static double calculateTotalTransactions(BankStatement statement) { if (statement instanceof BankStatement(Listtransactions, BankAccount account)) { double total = 0; for (Transaction t : transactions) { total = t.amount; } return total; } return 0; }
इस उदाहरण में, बाहरी पैटर्न BankStatement (सूची लेनदेन, BankAccount खाता) में एक नेस्टेड पैटर्न BankAccount खाता होता है जिसका उपयोग रिकॉर्ड BankStatement से खाता घटक निकालने के लिए किया जाता है। यह अधिक संक्षिप्त और कुशल कोड की अनुमति देता है, क्योंकि हमें प्रत्येक व्यक्तिगत उपपैटर्न मिलान को अलग से संभालना नहीं पड़ता है।
रिकॉर्ड पैटर्न की एक अन्य उपयोगी विशेषता प्रकार का अनुमान है। जब एक रिकॉर्ड पैटर्न किसी भी प्रकार के तर्क प्रदान किए बिना एक सामान्य रिकॉर्ड वर्ग का नाम देता है, तो पैटर्न का उपयोग होने पर कंपाइलर स्वचालित रूप से प्रकार के तर्कों का अनुमान लगाएगा। यह कोड को सरल बनाता है, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:
record MyBankAccount(L limitFactor, M money){}; static void recordInference(MyBankAccount bankaccount){ switch(bankaccount){ case MyBankAccount(var moneylimit, var amount) -> System.out.println("Messages: Inferred that account has balance " amount " with a limit of " moneylimit); case MyBankAccount(var moneylimit, null)-> System.out.println("Messages: Inferred that account has a balance of zero with a limit of " moneylimit); ... } }
यह सुविधा नेस्टेड रिकॉर्ड पैटर्न के साथ भी समर्थित है, जो कोड को और भी संक्षिप्त और पठनीय बनाती है।
अंत में, रिकॉर्ड पैटर्न जावा 21 में स्विच एक्सप्रेशन और स्टेटमेंट के साथ पूरी तरह से एकीकृत हैं। हालांकि, यह ध्यान रखना महत्वपूर्ण है कि स्विच स्टेटमेंट में रिकॉर्ड पैटर्न का उपयोग करते समय, स्विच ब्लॉक संपूर्ण होना चाहिए। इसका मतलब यह है कि चयनकर्ता अभिव्यक्ति के सभी संभावित मूल्यों को स्विच ब्लॉक में शामिल किया जाना चाहिए। रिकॉर्ड पैटर्न के साथ, यह उपयोग किए गए पैटर्न के प्रकारों का विश्लेषण करके निर्धारित किया जाता है। उदाहरण के लिए, केस लेबल केस बार बी प्रकार बार के मानों और बार के सभी संभावित उपप्रकारों से मेल खाएगा।
निष्कर्ष में, जावा 21 में रिकॉर्ड पैटर्न को समझना और उसमें महारत हासिल करना जावा एसई 21 डेवलपर प्रमाणन की तैयारी करने वाले किसी भी व्यक्ति के लिए महत्वपूर्ण है। ये नई सुविधाएँ अधिक सुव्यवस्थित और कुशल रिकॉर्ड प्रबंधन की अनुमति देती हैं, जिससे यह जावा डेवलपर्स के लिए एक आवश्यक कौशल बन जाता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3