簡體   English   中英

Java中的Lambda表達式

[英]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庫包含FunctionPredicate類,可用於模擬類似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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM