2
使用Lambdaj,我試圖從列表中分離滿足2個單獨條件的對象。以下兩項將實現我的目標。 A)使用兩個單獨的過濾標準,使用Lambdaj
List<SomeObject> someObjectsWithMatchingSomeObjectIds = select(foo.getSomeParentObject().getSomeObjects(), having(on(
SomeObject.class).getId(), equalTo(123)));
SomeObject someObject = selectFirst(someObjectsWithMatchingSomeObjectIds, having(on(SomeObject.class).getLoanTerm(),
notNullValue()));
B)
SomeObject someObject = selectFirst(select(foo.getSomeParentObject().getSomeObjects(), having(on(SomeObject.class)
.getId(), equalTo(123))), having(on(SomeObject.class).getLoanTerm(), notNullValue()));
第一次似乎更具可讀性,特別是人誰是不熟悉的API。第二個似乎利用lambdaj的函數編程方面,這是最好的?
可讀性勝我想。但是,我想知道,使用LambdaJ過濾集合時,是否有更簡潔的方式來處理兩個單獨的條件?
謝謝你的回覆!這個'和'功能似乎正是我所追求的。你可以給我寄一個包裹嗎?(看不到任何明顯的東西)?它是hamcrest還是lambdaj? – HellishHeat
此外,「當你可以給標識符一個有意義的名字 - 不確定它確實是你的代碼中的情況。」苛刻!很明顯,我已經改變了我的對象的名稱爲這篇文章:)。再次感謝你的幫助。 – HellishHeat
我正在考慮Lambdaj中的[AndMatcher](http://lambdaj.googlecode.com/svn/trunk/html/apidocs/index.html)類的靜態構造函數'和'。 – gasche