2017-02-22 27 views
1

我使用流过滤器从请求对象中获取两个日期。在那里,我必须比较这些对象,然后收集它们存储在列表中。但是现在我得到这个错误。请帮助我。如何比较java 8中的流过滤器中的两个日期?

错误:

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()); 
+2

也许你想使用'equals'而不是'compareTo'? – misko321

回答

3

你不声明你的过滤条件居然是:

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

的compareTo自行返回一个int值,那不行被转换为布尔值,这是过滤器所需要的。

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

+0

我正在尝试。 –

+0

感谢它正在工作的人。 –