सारांश काफी कुछ कहता है।ImmutableList.of() और दोस्तों क्यों नल तत्वों को प्रतिबंधित करते हैं?
if (element == null) {
throw new NullPointerException("at index " + index);
}
मैं कई बार आई है और नहीं देख सकते हैं क्यों एक सामान्य प्रयोजन पुस्तकालय समारोह इस सीमा को लागू करना चाहिए: यहाँ ImmutableList.createFromIterable()
में कोड के प्रासंगिक टुकड़ा है।
संपादित करें 1: "सामान्य उद्देश्य" से, मैं 95% मामलों से खुश हूं। लेकिन मुझे नहीं लगता कि मैंने अभी तक ImmutableList.of()
पर 100 कॉल लिखी हैं, और इसे एक से अधिक बार काट दिया गया है। शायद मैं एक बाहरी हूँ, हालांकि। :)
संपादित करें 2: मुझे लगता है कि मेरी बड़ी शिकायत यह है कि मानक java.util
संग्रहों के साथ बातचीत करते समय यह "हिचकी" बनाता है। जैसा कि आपने अपनी बात में बताया है, संग्रह में null
एस के साथ समस्याएं उन नलिकाओं को डालने से दूर दिखाई दे सकती हैं। लेकिन अगर मेरे पास कोड की एक लंबी श्रृंखला है जो एक छोर पर मानक संग्रह में नल रखती है और उन्हें दूसरे पर ठीक से संभालती है, तो मैं किसी भी समय Google संग्रह वर्ग को किसी भी बिंदु पर प्रतिस्थापित करने में असमर्थ हूं, क्योंकि यह तुरंत NullPointerException
फेंक दें।
प्रश्न: क्या आप "सामान्य उद्देश्यों" का अर्थ "100% उद्देश्यों" या "9 5% उद्देश्यों" का अर्थ है? –
ने उत्तर दिया –
पुन: संपादित करें 2: यह दावा करना है कि रास्ते में उन सभी मध्यवर्ती बिंदुओं के बारे में अज्ञात होना चाहिए कि वे नल के माध्यम से गुज़र रहे हैं या नहीं। मैं इससे सहमत नहीं हूं! इन एपीआई में से प्रत्येक को स्पष्ट रूप से शून्य या स्पष्ट रूप से इसे अस्वीकार करने की अनुमति देनी चाहिए। हर कोई इस बिंदु को दबाकर जारी रख सकता है, लेकिन कृपया यह समझें कि यह शुद्ध शिकायत है, और रचनात्मक नहीं है। भले ही आप हम में से प्रत्येक को आश्वस्त करते हैं, हम गलत, गलत, गलत (बिल्कुल, निश्चित रूप से) थे, फिर भी इससे कोई फर्क नहीं पड़ता: ऐसा नहीं है कि हम इसे और भी बदल सकते हैं। –