谓词::不适合Java
Jim Laskey在OpenJDK core-libs-dev郵件列表上最近的消息“ RFR:CSR – JDK-8203428 Predicate :: not ”指出了JDK Bug JDK-8203428 [“ Predicate :: not”]。 JDK-8203428的“摘要”指出:“引入新的靜態方法Predicate :: not,這將使開發人員可以輕而易舉地否定謂詞lambda。” 當前已分配給JDK 11 。
JDK-8203428的“問題”部分提供了對Predicate::not解決的問題的簡要描述:
謂詞否定的要求經常發生,因為謂詞被定義為對正選擇有反作用。 isNull,isEmpty,isBlank。
當前,如果不先包裝在謂詞對象中,就沒有簡單的方法來否定謂詞lambda 。
有一個非常有說明性的示例,說明了如何在JDK-8203428編寫中使用它。 JDK-8203428的“問題”部分提供了演示當今如何執行“謂詞否定”的代碼,而“解決方案”部分提供了演示如何使用建議的靜態方法Predicate::not實現相同功能的代碼。
在此郵件列表線程中還有一些其他有趣的消息。 該線程中的Brian Goetz消息指出:“我們確實發現[功能接口]上的默認方法與[功能接口]的子類型結合在一起會造成麻煩。 但是靜態方法很好。” 線程中的RémiForax消息指出:“ stackoverflow已經確定 Predicate.not是正確的方法 。” 該線程中的Sundararajan Athijegannathan消息指出“ not(String::isEmpty)讀取幾乎就像!str.isEmpty() 。
將靜態函數not(Predicate<T>)到Predicate是一件小事,但是應該提高許多Java代碼行的流暢性。
翻譯自: https://www.javacodegeeks.com/2018/05/predicatenot-coming-to-java.html
總結
以上是生活随笔為你收集整理的谓词::不适合Java的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 挛怎么读音 挛的拼音
- 下一篇: antlr java_使用ANTLR和J