Ant*_*sok 5 java java-8 java-stream
你好,我在 java 8 中该怎么做(我知道它已经在 java 11 中),与不过滤这个相反
filter(date -> date.isEqual(today) && repository.isDateExist(date))
Run Code Online (Sandbox Code Playgroud)
我可以这样写
filter(date -> !date.isEqual(today) || !repository.isDateExist(date))
Run Code Online (Sandbox Code Playgroud)
但它很难读
您可以使用Predicate
snegate()
方法,但这需要将 lambda 表达式转换为该Predicate
类型。否则编译器无法推断类型。
filter(((Predicate<Date>)(date -> date.isEqual(today) && repository.isDateExist(date))).negate())
Run Code Online (Sandbox Code Playgroud)
或者只是Predicate
在对其取反之前将其分配给变量:
Predicate<Date> pred = date -> date.isEqual(today) && repository.isDateExist(date);
filter(pred.negate())
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8163 次 |
最近记录: |