Optional.isEmpty()即将加入Java吗?
JDK-8184693請求將方法isEmpty()添加到JDK 8引入的Optional類中。 調用Optional.isEmpty()等效于調用! Optional.isPresent() ! Optional.isPresent() 。 當前沒有與JDK-8184693關聯的JDK版本 ,但是正如最近在core-libs-dev郵件列表中的標題為“ RFR:8184693:(opt)add Optional.isEmpty ” 所示 ,它正在積極地工作。
JDK-8184693由Stuart Marks在2017年7月撰寫,為添加Optional.isEmpty()提供了一些有趣的理由。 Marks指出:“通常,我們避免添加彼此簡單逆的方法”,并舉例說明String.isEmpty()和Collection.isEmpty()的存在,而沒有任何隨附的String.notEmpty()或Collection.nonEmpty()對應項。 Marks認為這種方法在這些情況下效果很好,因為“空/非空不是根本”對他們來說:“對于這些對象,對空字符串(例如,搜索或附加它)或集合(例如, ,對其進行迭代)。”
在JDK-8184693 ,商標是確實有方法來明確表達雙方的空虛和非空虛例子寫道。 他寫道:“但是,使用引用,null / non-null是非常基本的,我們有O bjects.isNull和Objects.nonNull 。” 因為這些示例的用法更像Optional的用法,所以Marks認為Optional應該在其當前的isPresent()方法旁邊有一個isEmpty() isPresent()方法:“與Optional相似,空/當前二分法是非常基本的,因此應該isEmpty和isPresent一起。”
JDK-8184693中的大多數證明文本已于本月(2018年4月)添加,并包含指向Peter Levart的2017年4月core-lib-devs郵件列表帖子“ Optional.isEmpty() ”的鏈接。 該錯誤的撰寫總結了這篇文章開始的一些討論。 在消息線程包括那些提供幽默 ,參考bikeshedding ,列表“ 大量的單行不使用布爾否定 ,”建議名稱isNotPresent()或isAbsent() ,提供熱情支持的的想法的Optional.isEmpty() ,并提醒“ 將方法添加到Optional的標準設置得很高 。”
前面提到的郵件列表消息“ RFR:8184693:(opt)add Optional.isEmpty ”引用了可供查閱的代碼 。 擬議更改的Optional.java的“ Sdiff ”表明該方法已實現。 但是, 仍需要對OptionalDouble , OptionalLong和OptionalInt進行類似的更改 。
正如我在Java代碼中使用Optional ,當我不需要使用Optional.isPresent()時,我會體會到時間。 但是,有時無法解決問題,我期待添加Optional.isEmpty()來代替!Optional.isPresent() 。 Optional.isEmpty()是一件小事,但我相信它將使我的代碼更易讀和更流暢。 我希望它很快就會在我附近的JDK上發布。
翻譯自: https://www.javacodegeeks.com/2018/04/optional-isempty-coming-to-java.html
總結
以上是生活随笔為你收集整理的Optional.isEmpty()即将加入Java吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓情景模式设置在哪(安卓情景模式)
- 下一篇: Java 10 –局部变量类型推断