मेरे पास एक मॉडल है, जिसमें कुछ विकल्प फ़ील्ड हैं, जिनमें एक और विकल्प फ़ील्ड हैं। उदाहरण के लिए:अन्य विकल्प ऑब्जेक्ट के अंदर स्कैला विकल्प ऑब्जेक्ट
case class First(second: Option[Second], name: Option[String])
case class Second(third: Option[Third], title: Option[String])
case class Third(numberOfSmth: Option[Int])
मैं बाहरी JSON के से इस डेटा प्राप्त कर रहा हूँ और कभी कभी यह डाटा शून्य के शामिल हो सकता है, कि इस तरह के मॉडल के डिजाइन के कारण था।
तो सवाल यह है कि: गहरा क्षेत्र पाने का सबसे अच्छा तरीका क्या है?
First.get.second.get.third.get.numberOfSmth.get
उपरोक्त विधि वास्तव में बदसूरत लगती है और यदि कोई ऑब्जेक्ट कोई नहीं होगा तो यह अपवाद हो सकता है। मैं Scalaz lib में देख रहा था, लेकिन ऐसा करने के लिए एक बेहतर तरीका नहीं पता था।
कोई विचार? अग्रिम धन्यवाद।
बस एक नोट लेकिन flatMap woun ':
यहाँ आरईपीएल (4 शैलियों, बराबर हैं पहले दो flatMap घोंसले का उपयोग कर, अन्य दो flatMap के फ्लैट चेन उपयोग करने के साथ) में कुछ उदाहरण है कई बार नीचे दिए गए अनुसार काम नहीं करते हैं। यह 'first.second.flatMap होना चाहिए (_। Third.flatMap (_। NumberOfSmth))। प्राप्त करें 'और अभी भी फेंक सकता है और अपवाद – korefn
वास्तव में, धन्यवाद। आपके उत्तरों के लिए सभी को धन्यवाद, मैंने पाया है कि मैं क्या देख रहा था। – psisoyev