箭头运算符' - >'在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).