2008-10-22 37 views

回答

5

不 - 沒有。 Apache commons-collections對此類事物具有謂詞,但由此產生的代碼(使用匿名內部類)通常很難看,並且很難調試。

只需使用一個基本for循環,直到他們帶來closures到語言

+0

好吧,我一直聽到有關這一點的矛盾信息:在Java 7中是否關閉?我看到一些網頁說他們沒有做出裁員,有些人說他們做了。 – jasonmp85 2010-05-31 11:15:49

+0

我認爲目前的答案是,是的,他們可能會做到。 Google Neal Gafter瞭解更多信息! – 2010-05-31 12:48:36

1

您可以試試Quaere。我沒有使用它,但它看起來很有趣。

1

Google Collection Library提供了這種輔助方法,比commons-collections更乾淨一點。

+0

「清潔」是Google收集庫具有泛型意識的結果,與公共收藏不同。 – 2009-03-22 19:16:46

3

通過使用lambdaj庫,例如,你可以找到頂級的聲譽用戶,因爲它遵循:

List<User> topUsers = 
    select(users, having(on(User.class).getReputation(), greaterThan(20000))); 

它有一定的優勢尊重Quaere庫,因爲它不使用任何魔法字符串,它是完全類型安全,並在我看來它提供了一個更可讀的DSL。

3

Querydsl通過它的集合模塊提供了這個功能。由於我是該模塊的維護者,所以我有偏見,但我相信在給定Java 6的限制條件下,這是一個選項。

使用Java 7,將會有閉包使得通過閉包過濾,這使得外部庫的使用變得不那麼必要。

相關問題