的javadoc of Spliterator
(這基本上是什麼是真的Stream
如果我理解正確的事情背後)定義了許多習性研究其意義如SIZED
,CONCURRENT
,IMMUTABLE
等爲什麼Spliterator <?>非空定義爲特點呢?
但它也定義NONNULL
;爲什麼?
我會盡力確保用戶的責任,並且如果開發人員試圖在.sort()
非SORTED
流中存在空元素,他/她會被NPE正確地迎接...
但隨後這一特徵的存在。爲什麼?的Spliterator
本身的Javadoc沒有提到它的任何實際使用,而且也不該java.util.stream
包的package-info.java
...
Hmmwait ...不是'Stream's在這裏的主要客戶?我可能太狹隘了,但我沒有看到你可能設計的其他客戶。當然,你可以實現你自己的(我做到了這一點),但除了在'Stream'中使用它... ... – fge 2015-04-02 09:28:11
是不是「你可以實現你自己」的一個優點,如果不是* Java的*點API,它可以幫助您編寫自己的應用程序,而不是提供完整的應用程序?除此之外,'Stream's是主要客戶,是的,但不限於'Stream'的*當前實現*。在未來的版本中添加一個新特性需要一個主要版本,但添加一個實現(更好地)使用已經存在的標誌可能會在每次小小的更新中發生。因此,儘早添加具有潛在價值的標誌是一個合理的策略。 – Holger 2015-04-02 09:42:10
是的,我同意這是一個強項;我想我對其背後的設計決策缺乏足夠的瞭解:/ – fge 2015-04-02 11:41:19