有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

的Lambda表达式。NET在Java中的应用

我最近[再次]从C#转到Java。但我非常想念lambda表达式和类似IEnumerable的东西。C#的每一个。 因此,我正在寻找Java中的lambda表达式库

有比LambdaJ更好的库吗

clojure在Java程序中也可以直接内联吗?也就是说,我可以在Java函数中混合clojure代码吗


共 (3) 个答案

  1. # 1 楼答案

    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包含许多帮助器方法,这些方法利用函数和谓词进行转换或过滤所有不同类型的iterables:http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Iterables.html

    注意:我意识到Pangea已经在上面发布了一个指向Google Guava的链接,但我已经开始写这篇文章,并且认为提供链接仍然有用

  2. # 2 楼答案

    Java中等价的foreach循环的结构如下

    List<Foo> fooList = // some list containing foos
    for (Foo foo : fooList){
        // do stuff
    }
    

    Java中没有lambda表达式,但是如果您可以等到Java8,它们将添加闭包。最接近的是anonymous inner classes