【问题标题】:What is the meaning of this -> symbol in Java? [duplicate]Java中这个->符号的含义是什么? [复制]
【发布时间】:2016-04-11 19:50:40
【问题描述】:

我无法理解如何让这段代码在 Java7 中运行

RetryPolicy retryPolicy = new RetryPolicy()
  .retryWhen((ClientResponse response) -> response.getStatus() != 200)
  .withDelay(1, TimeUnit.SECONDS)
  .withMaxRetries(3);

Recurrent.get(() -> webResource.post(ClientResponse.class, input), retryPolicy);

这个-> 符号在java 中到底是什么意思?

如果 Java7 不支持它如何改变它,它应该可以工作。

【问题讨论】:

  • 切换到使用 Java 8,因为不再支持 v7。
  • 这被称为箭头 -> 用于 lambda 表达式,如参数、-> 箭头和表达式
  • @tom 谢谢。拼写错误,已更正。

标签: java


【解决方案1】:

-> 用于表示Lambda Expressions,它是在 Java 8 中引入的,因此它不会针对 Java 7 进行编译。

取自here

Lambda 表达式是一种新的语言特性,已在 这个版本。它们使您能够将功能视为一种方法 参数或代码作为数据。 Lambda 表达式让你表达 单方法接口的实例(称为函数式接口) 接口)更紧凑。

要编译(针对 Java 8 的早期版本),您需要重写代码。否则,您将需要针对 Java 8 进行编译。

【讨论】:

  • 我正在使用一个 API github.com/jhalterman/recurrent/#retry-policies 他们使用这样的代码,这意味着 Java7 将支持它?
  • @SubodhJoshi 不,它仅支持 java 8。
  • @SubodhJoshi:该代码不是 Java 7 的一部分。Java 8 中引入了 Lambda 表达式,需要 Java 8 或更高版本才能编译。
猜你喜欢
  • 1970-01-01
  • 2012-10-15
  • 2020-05-21
  • 2011-01-18
  • 1970-01-01
  • 2012-11-03
  • 2016-10-10
  • 2016-05-25
  • 2012-10-25
相关资源
最近更新 更多