使用 Lambdaj,我试图从列表中分离出满足 2 个单独标准的对象。以下两项都将实现我的目标。一个)
List<SomeObject> someObjectsWithMatchingSomeObjectIds = select(foo.getSomeParentObject().getSomeObjects(), having(on(
SomeObject.class).getId(), equalTo(123)));
SomeObject someObject = selectFirst(someObjectsWithMatchingSomeObjectIds, having(on(SomeObject.class).getLoanTerm(),
notNullValue()));
二)
SomeObject someObject = selectFirst(select(foo.getSomeParentObject().getSomeObjects(), having(on(SomeObject.class)
.getId(), equalTo(123))), having(on(SomeObject.class).getLoanTerm(), notNullValue()));
第一个似乎更具可读性,特别是对于不熟悉 API 的人。第二个似乎利用了 lambdaj 的函数式编程方面,哪个最好?
我想可读性获胜。但是,我想知道,在使用 LambdaJ 过滤集合时,是否有更简洁的方法来处理两个单独的条件?