javadoc of Spliterator
(जो क्या वास्तव में एक Stream
अगर मैं चीजों को सही ढंग से समझ के पीछे है मूल रूप से है) कई characeristics जो समझ बनाने को परिभाषित करता है SIZED
जैसे, CONCURRENT
, IMMUTABLE
आदिस्प्लिटरेटर <?> क्यों नॉननल को एक विशेषता के रूप में परिभाषित करता है?
लेकिन यह भी NONNULL
परिभाषित करता है; क्यूं कर?
मैं होगा, हालांकि यह है कि यह है कि और सुनिश्चित करने के लिए उपयोगकर्ता की जिम्मेदारी होगी कि अगर, उदाहरण के लिए, एक डेवलपर .sort()
एक गैर SORTED
धारा जहां अशक्त तत्वों वह/वह हक एक एनपीई के साथ स्वागत किया जाएगा देखते हैं करने की कोशिश की ...
लेकिन फिर यह विशेषता मौजूद है। क्यूं कर? Spliterator
ही की जावाडोक इसके बारे में किसी भी असली उपयोग का उल्लेख नहीं करता है और न java.util.stream
पैकेज के package-info.java
है ...
हम्मवाइट ... क्या स्ट्रीम यहां प्राथमिक ग्राहक नहीं हैं? मैं शायद बहुत संकीर्ण दिमाग में हूं लेकिन मैं नहीं देखता कि आप अन्य ग्राहक क्या संभवतः तैयार कर सकते हैं। निश्चित रूप से, आप अपना खुद का कार्यान्वयन कर सकते हैं (मैंने ऐसा किया है), लेकिन इसे 'स्ट्रीम' में उपयोग करने के अलावा ... – fge
"आप अपने स्वयं को लागू कर सकते हैं" एक मजबूत बिंदु नहीं है, अगर जावा के * बिंदु एपीआई, जो आपको पूर्ण अनुप्रयोग प्रदान करने के बजाय अपना स्वयं का आवेदन लिखने में सहायता करने के लिए है? इसके अलावा, 'स्ट्रीम प्राथमिक ग्राहक हैं, हां, लेकिन यह' स्ट्रीम 'के * वर्तमान कार्यान्वयन * तक ही सीमित नहीं है। भविष्य के संस्करण में एक नई विशेषता को जोड़ने के लिए एक बड़ी रिलीज की आवश्यकता होगी, लेकिन एक कार्यान्वयन जो पहले से मौजूद झंडे का उपयोग (बेहतर) उपयोग करता है, हर छोटे अपडेट में हो सकता है। इसलिए संभावित मूल्य के साथ जितनी जल्दी संभव हो सके झंडे जोड़ने की एक उचित रणनीति है। – Holger
हां, मैं मानता हूं कि यह एक मजबूत बिंदु है; मुझे लगता है कि मैं इसके पीछे डिजाइन फैसलों के बारे में पर्याप्त जानकारी नहीं दे रहा हूं: / – fge