箭头运算符' - >'在Java中做什么?

箭头运算符' - >'在Java中做什么?

问题描述:

在搜索某些代码时,我遇到了箭头操作符,它到底是做什么用的?我以为Java没有箭头操作符。

While hunting through some code I came across the arrow operator, what exactly does it do? I thought Java did not have an arrow operator.

return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> {
        return Car.SEDAN == ((Car)arg0).getStyle();
});

详细信息:Java 6,Apache Commons Collection,IntelliJ 12

Details: Java 6, Apache Commons Collection, IntelliJ 12

更新/答案:事实证明,IntelliJ 12支持支持lambda的Java 8,并且折叠预测并将它们显示为lambdas。下面是未折叠代码。

Update/Answer: It turns out that IntelliJ 12 supports Java 8, which supports lambdas, and is "folding" Predicates and displaying them as lambdas. Below is the "un-folded" code.

return (Collection<Car>) CollectionUtils.select(listOfCars, new Predicate() {
    public boolean evaluate(Object arg0) {
        return Car.SEDAN == ((Car)arg0).getStyle();
    }
});


这是新lambda表达式语法的一部分,将在Java 8中介绍。有几个在线教程可以解决它,这里是一个链接到一个。基本上, - > 将参数(左侧)与实际表达式(右侧)分开。

That's part of the syntax of the new lambda expressions, to be introduced in Java 8. There are a couple of online tutorials to get the hang of it, here's a link to one. Basically, the -> separates the parameters (left-side) from the actual expression (right side).