[英]Lambda expressions of .NET in Java
我最近從C#轉到Java [再次]。 但是我非常想念lambda表達式和像C#的IEnumerable.Foreach這樣的東西。 所以我在Java中尋找一個lambda表達式庫。
有沒有比LambdaJ更好的庫?
在Java程序中也可以直接使用clojure嗎? 那我可以在Java函數中混合使用clojure代碼嗎?
Java 8本身可能具有lambda支持。 在此之前,您可以使用匿名內部類和google-guava等庫的組合。 以下是您可以查看的其他庫
或者更好地看看Scala
Java中等效的foreach循環是這樣構造的
List<Foo> fooList = // some list containing foos
for (Foo foo : fooList){
// do stuff
}
Java中沒有lambda表達式,但是如果你可以等到Java8,他們就會添加閉包。 最接近的是匿名內部類 。
Google Guava庫包含Function
和Predicate
類,可用於模擬類似lambda的功能。 正如kgrad上面提到的,你可以創建每個的匿名實例。
http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Function.html
http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Predicate.html
雖然您可以自己輕松編寫類似這樣的類,但是Guava包含許多輔助方法,這些方法利用函數和謂詞來執行轉換或過濾所有不同類型的迭代: http : //guava-libraries.googlecode.com/svn/trunk /javadoc/com/google/common/collect/Iterables.html
注意:我意識到Pangea上面已經發布了一個指向Google Guava的鏈接,但我已經開始撰寫這篇文章,並認為提供這些鏈接仍然很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.