繁体   English   中英

Scala Future 中的 Lambda 表达式

[英]Lambda expressions in Scala Future

我正在使用 Scala 2.12.2 和 Java 8。对于一个非常奇怪的情况,我需要在 Java 中使用 Scala Futures,我发现在 future 运算符中使用 Lambdas 它不起作用。

@Test
public void test(){
    Future<String> future = new Promise.DefaultPromise();
    future.map(value -> value.toUpperCase())
            .onComplete(value -> System.out.println(value));
}

错误信息说:

Future cannot be applied to lambda expression

但是在阅读了 Scala 2.12 版http://www.scala-lang.org/news/2.12.0/的文档后

我明白从现在开始,Java8 中的 lambda 表达式将与 Scala API 兼容。

我在这里误解了什么吗?

这在这里工作正常

scala.concurrent.Future<String> f = scala.concurrent.Future.successful("abc");
scala.concurrent.Future<String> f2 = f.map(s -> s.toUpperCase(), scala.concurrent.ExecutionContext.global());
f2.foreach(s -> {System.out.println(s); return null;}, scala.concurrent.ExecutionContext.global());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM