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(); } }); 

4 Solutions collect form web for “Java中的箭头运算符' – >'是做什么的?”

这是新的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"); } }; 
  • 如何判断是否安装了JRE或JDK
  • Java 8 Collectors.toMap SortedMap
  • Jack(Java Android编译器套件)如何影响Scala开发人员
  • 用于Java 8的Tomcat 8 Maven插件
  • 使用stream将自定义比较器收集到TreeSet中
  • 如何使用lambdaexpression式检查元素是否存在?
  • - > < - 操作符是做什么的?
  • 是否有可能在Java 8中投射stream?
  • 默认方法返回true一段时间,然后返回false? (可能的JVM错误)
  • Java 8stream和RxJava可观察对象之间的区别
  • 如何将Java 8stream转换为数组?