【问题标题】:org.hamcrest.Matchers for matching different properties simultaneously of an Objectorg.hamcrest.Matchers 用于同时匹配对象的不同属性
【发布时间】:2011-04-15 04:39:18
【问题描述】:

我正在尝试通过 org.hamcrest.Matchers 匹配对象的两个不同属性。这里是:

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)))
                 )
              );

它给出了一个 LeaveApply 对象列表,该对象的 user-id 等于给定的 id,并且 date 小于或等于 to-date 并且大于或等于 from-date。这是工作。我想知道匹配不同属性字段的方法正确吗?

【问题讨论】:

    标签: java hamcrest lambdaj


    【解决方案1】:

    据我所知,它应该可以工作。您可以进行两项改进:使用静态导入使其更具可读性,并使用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)))));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多