当前位置: 首页 > 面试题库 >

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

长孙星汉
2023-03-14
问题内容

在浏览一些代码时,我遇到了箭头运算符,它究竟是做什么的?我以为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();
    }
});

问题答案:

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

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

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

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



 类似资料:
  • 更新/答案:原来IntelliJ12支持Java 8,后者支持lambda,并且正在“折叠”谓词并将其显示为lambda。下面是“未折叠”代码。

  • 问题内容: 我已经使用Java几年了,但是直到最近我还没有遇到过这种构造: 这可能是一个非常简单的问题,但是有人可以解释吗?我该如何阅读?我很确定我知道它是如何工作的。 如果isHere为真,getHereCount()则称为 如果isHere为假,getAwayCount()则调用。 正确?这个结构叫做什么? 问题答案: 是的,它是 它称为条件运算符。许多人(错误地)将其称为三元运算符,因为它是

  • 问题内容: 在阅读Android通知指南时,我偶然发现了这一点: 增加振动 您可以使用默认振动模式或应用程序定义的振动模式来警告用户。 要使用默认模式,请将“ DEFAULT_VIBRATE”添加到默认字段: 这样做很清楚:它将标志添加到通知对象的默认标志。但是,运算符在Java中做什么?它看起来像一个“ OR”,但是它如何工作? 您可以举一个使用数字的例子吗? 谢谢 问题答案: 是按位或分配运算

  • 问题内容: (插入符)运算符在Java中提供什么功能? 当我尝试这个: …它给我: …所以我猜它不执行幂运算。但是那是什么呢? 问题答案: Java中的运算子 在Java中,“异或”运算符。 让我们举个例子: 这是按位(JLS 15.22.1)和逻辑(JLS 15.22.2)xor的真值表: 更简单地,你也可以将xor视为“ this or that,但不是两者都!”。 Exponentiatio

  • 我有一个具有以下代码的文件: 它在另一个。js文件中也是这样使用的: 有人能解释第一行中的=>系列发生了什么吗?我理解normal(req,res,next)=>{}的意思如下: