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