java - 如何在 Java 8 的流过滤器中比较两个日期?

标签 java java-8 java-stream

<分区>

我使用流过滤器从请求对象中获取两个日期。在那里我必须比较这些对象然后将它们收集起来存储在列表中。但现在我得到了这个错误。请帮助我。

错误:

Type mismatch: cannot convert from int to boolean

代码:

Date checkIn = req.getCheckIn();
Date checkOut = req.getCheckOut();

List<PlaceBook> filtered = checkInVal.stream().filter(string -> 
            string.getCheckInDt().compareTo(checkIn)).collect(Collectors.toList());

最佳答案

你没有声明你的过滤条件是什么:

List<PlaceBook> filtered = checkInVal.stream().filter(string -> 
        string.getCheckInDt().compareTo(checkIn) == 0 /* == 0, for example is missing*/).collect(Collectors.toList());

compareTo 本身返回一个 int 值,不能转换为过滤器所需的 boolean 值。

顺便说一句,“string”在过滤器中不是一个好名字。

关于java - 如何在 Java 8 的流过滤器中比较两个日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42391081/

相关文章:

java - 不要在 servlet 中硬编码 jsp 链接

java - 如何防止 Java 8/Tomcat 7 对 Response.sendRedirect 上的 URL 路径进行 URL 编码

java - 磁盘读取操作执行速度非常慢 | Java流

java - 使用 Java 8 的流和收集器将 Collection to Map 转换封装到一个方法中

java - 尝试将 rtf 文件从 Jar 读取到 JEditorPane;在 Netbeans 中工作,而不是在 Jar 中工作

java - Spring MVC : Google api giving Null pointer for JSON key

java - Intellij java类图,类之间的箭头

java - 没有获取字节数组流的方法

java - 使用 Mockito,我如何验证我的 lambda 表达式被调用了?

java - 有没有办法让下面的代码更通用?