Java中的箭头运算符' – >'是做什么的?
在通过一些代码search时,我碰到了箭头运算符,它究竟做了什么? 我以为Java没有箭头运算符。
return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> { return Car.SEDAN == ((Car)arg0).getStyle(); });
详细信息 :Java 6,Apache Commons Collection,IntelliJ 12
更新/回答:事实certificate,IntelliJ 12支持Java 8,它支持lambda,并“折叠”Predicates并将它们显示为lambdaexpression式。 以下是“未折叠”的代码。
return (Collection<Car>) CollectionUtils.select(listOfCars, new Predicate() { public boolean evaluate(Object arg0) { return Car.SEDAN == ((Car)arg0).getStyle(); } });
这是新的lambdaexpression式的语法的一部分,将在Java 8中引入。有几个在线教程来获取它,这是一个链接 。 基本上, ->
将参数(左侧)与实际expression式(右侧)分开。
我相信,这个箭头是因为你的IDE而存在的。 IntelliJ IDEA用一些代码来做这样的事情。 这就是所谓的代码折叠。 您可以点击箭头将其展开。
这是一个lambdaexpression式。
这意味着,从listOfCars,arg0是该列表中的项目之一。 有了这个项目,他会做的,因此 – >,无论是在括号内。
在这个例子中,他将返回一个符合条件的汽车列表
Car.SEDAN == ((Car)arg0).getStyle();
当你想要实现一个接口的时候,这个也很有用
Runnable r = ()-> System.out.print("Run method");
相当于
Runnable r = new Runnable() { @Override public void run() { System.out.print("Run method"); } };