Java中的'->'是什么意思?

7

我在看一些Java教程时,不确定“->”的作用,并且在谷歌上找不到任何有关的内容。

这里有一些使用它的代码:

myShapesCollection.stream()
.filter(e -> e.getColor() == Color.RED)
.forEach(e -> System.out.println(e.getName()));

5
这是写lambda表达式的语法,它将作为Java 8的一个新特性被包含进去。 - Rohit Jain
1个回答

21
这是用于 Java 8 中可用的 lambda 表达式的语法。例如,filter 需要一个 Predicate,并且 e -> e.getColor() == Color.RED 在功能上等同于:

lambda 表达式 的语法在 Java 8 中被使用。

例如,filter 需要一个 Predicate,并且 e -> e.getColor() == Color.RED 等同于:

new Predicate<Shape>() {
    public boolean test(Shape s) { return s.getColor() == Color.RED; }
}

4
我认为等效的代码应该是 new Predicate<Shape>(){ public boolean test(Shape e){ return e.getColor() == Color.RED; } } - Eng.Fouad
是的,确实如此。谢谢。 - assylias

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接