2017-02-22 8 views
1

ストリームフィルタを使用してリクエストオブジェクトから2つの日付を取得します。そこでは、それらのオブジェクトを比較して、リストに格納する必要があります。しかし、今私はこのエラーが発生します。それで私を助けてください。どのようにJava 8のストリームフィルタで2つの日付を比較するには?

エラー:

Type mismatch: cannot convert from int to boolean

コード:自身で

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

のcompareToはint型の値を返します:あなたは、あなたのフィルタ条件が実際に何であるかを宣言いけない

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

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

「compareTo」ではなく「equals」を使用したかったでしょうか? – misko321

答えて

3

、それはできませんブール値にキャストされます。これはフィルターで必要です。

BTW「文字列」はフィルタに適切な名前ではありません。

+0

私はそれを試しています。 –

+0

ありがとうございます。 –

関連する問題