箭头运算符'->'在Java中有什么作用?

问题描述

这是将在Java 8中引入的新lambda表达式的语法的一部分。有一些在线教程可以帮助你解决这些问题,这里是一个链接。基本上,将->参数(左侧)与实现(右侧)分开。

使用lambda表达式的一般语法是

(参数)-> {主体},其中的'->'分隔参数和lambda表达式主体。

参数用括号括起来,方法方法相同,lambda表达式主体是用括号括起来的代码块。

解决方法

在浏览一些代码时,我遇到了箭头运算符,它究竟是做什么的?我以为Java没有箭头运算符。

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

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

更新/答案:事实证明IntelliJ 12支持Java 8,后者支持lambda,并且正在“折叠”谓词并将其显示为lambda。下面是“展开”代码。

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

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”