的Lambda表达式。NET在Java中的应用
我最近[再次]从C#转到Java。但我非常想念lambda表达式和类似IEnumerable的东西。C#的每一个。 因此,我正在寻找Java中的lambda表达式库
有比LambdaJ更好的库吗
clojure在Java程序中也可以直接内联吗?也就是说,我可以在Java函数中混合clojure代码吗
你可以在下面搜索框中键入要查询的问题!
我最近[再次]从C#转到Java。但我非常想念lambda表达式和类似IEnumerable的东西。C#的每一个。 因此,我正在寻找Java中的lambda表达式库
有比LambdaJ更好的库吗
clojure在Java程序中也可以直接内联吗?也就是说,我可以在Java函数中混合clojure代码吗
# 1 楼答案
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包含许多帮助器方法,这些方法利用函数和谓词进行转换或过滤所有不同类型的iterables:http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Iterables.html
注意:我意识到Pangea已经在上面发布了一个指向Google Guava的链接,但我已经开始写这篇文章,并且认为提供链接仍然有用
# 2 楼答案
Java中等价的foreach循环的结构如下
Java中没有lambda表达式,但是如果您可以等到Java8,它们将添加闭包。最接近的是anonymous inner classes
# 3 楼答案
Java 8本机可能支持lambda。在此之前,您可以使用匿名内部类和google-guava之类的库的组合。下面是您可以查看的其他库
或者最好看看Scala