5

org.hamcrest.Matchers によってオブジェクトの 2 つの異なるプロパティを一致させようとしています。ここにあります:

List<LeaveApply> leaveApplyList = Lambda.select(
   allLeaveApplyList,
       Matchers.allOf(
            Lambda.having(
                Lambda.on(LeaveApply.class).getUser().getId(),   
                Matchers.equalTo(userId)), 
            Lambda.having(
                Lambda.on(LeaveApply.class).getDate(),
                Matchers.allOf(
                    Matchers.greaterThanOrEqualTo(fromDate), 
                    Matchers.lessThanOrEqualTo(toDate)))
                 )
              );

指定された id と等しい user-id と、to-date 以下で from-date 以上の日付を持つ LeaveApply オブジェクトのリストを提供します。それは働いています。異なるプロパティ フィールドを一致させる正しい方法を知りたいですか?

4

1 に答える 1

7

私が見る限り、それは機能するはずです。2つの改善を行うことができます。静的インポートを使用して読みやすくし、使用するhaving(...).and(...)代わりに使用しallOfます。

import static ch.lambdaj.Lambda.*;
import static org.hamcrest.Matchers.*;

List<LeaveApply> leaveApplyList = select(allLeaveApplyList, having(on(LeaveApply.class).getUser().getId(), equalTo(userId)).and(on(LeaveApply.class).getDate(), allOf(greaterThanOrEqualTo(fromDate), lessThanOrEqualTo(toDate)))));
于 2011-04-15T06:29:40.467 に答える