हैलो साथी जावा डेवलपर्स,
मुझे पता है कि विषय थोड़ा सा हो सकता है in advance
क्योंकि JDK8 अभी तक जारी नहीं किया गया है (और अब वैसे भी नहीं है ..) लेकिन मैं लैम्बडा के भावों और विशेष रूप से नए संग्रह एपीआई से संबंधित भाग के बारे में कुछ लेख पढ़ रहा था जिसे स्ट्रीम के रूप में जाना जाता है।
यहाँ उदाहरण के रूप में जावा पत्रिका लेख में दिया गया है (यह एक ओटर जनसंख्या एल्गोरिदम है ..):
Set<Otter> otters = getOtters();
System.out.println(otters.stream()
.filter(o -> !o.isWild())
.map(o -> o.getKeeper())
.filter(k -> k.isFemale())
.into(new ArrayList<>())
.size());
मेरा प्रश्न यह है कि यदि सेट आंतरिक पुनरावृत्ति के मध्य में, ओटर में से एक शून्य है तो क्या होगा?
मैं एक NullPointerException को फेंकने की उम्मीद करूंगा लेकिन शायद मैं अभी भी पिछले विकास प्रतिमान (गैर-कार्यात्मक) में फंस गया हूं, क्या कोई मुझे बता सकता है कि इसे कैसे संभाला जाना चाहिए?
यदि यह वास्तव में एक NullPointerException को फेंक देता है, तो मुझे यह सुविधा काफी खतरनाक लगती है और इसे नीचे के रूप में ही उपयोग करना होगा:
- यह सुनिश्चित करने के लिए डेवलपर कि कोई शून्य मान नहीं है (शायद पिछले .filter (o -> o! = Null) का उपयोग कर रहा है)
- आवेदन सुनिश्चित करने के लिए डेवलपर शून्य ऊदबिलाव या एक विशेष NullOtter वस्तु से निपटने के लिए पैदा नहीं कर रहा है।
सबसे अच्छा विकल्प, या कोई अन्य विकल्प क्या है?
धन्यवाद!