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

Nav*_*run 1 java java-8 java-stream

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

错误:

类型不匹配:无法从 int 转换为 boolean

代码:

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

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

kam*_*l23 5

您没有声明您的过滤条件实际上是什么:

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

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

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