Java 8 Java 8播放2.5错误-类型参数和lambda表达式的数量错误此处不应出现错误

Java 8 Java 8播放2.5错误-类型参数和lambda表达式的数量错误此处不应出现错误,java-8,playframework-2.5,Java 8,Playframework 2.5,我正在尝试从2.4版升级到2.5版。使用中的指南,我将F.Promise、map和flatMap替换为上一个链接中的建议替换(反映了下面的更改片段) public CompletionStage parallel(){ 最终长启动=System.currentTimeMillis(); 最终完成阶段getLatency=resp->System.currentTimeMillis()-开始; CompletionStage googleLatency=WS.url(“http://google.

我正在尝试从2.4版升级到2.5版。使用中的指南,我将
F.Promise
map
flatMap
替换为上一个链接中的建议替换(反映了下面的更改片段)

public CompletionStage parallel(){
最终长启动=System.currentTimeMillis();
最终完成阶段getLatency=resp->System.currentTimeMillis()-开始;
CompletionStage googleLatency=WS.url(“http://google.com).get().thenapplysync(getLatency);
CompletionStage yahooLatency=WS.url(“http://yahoo.com).get().thenapplysync(getLatency);
返回googleLatency.ThenComposeSync(googleResponseTime->
yahooResponseTime->
ok(格式:“谷歌响应时间:%d;雅虎响应时间:%d”,
googleResponseTime,Yahoo ResponseTime)
);
}
运行
/activator clean dist
后,出现以下错误:

[错误]/Play-2-JS-2.5/app/controllers/Java8Controller.java:74:类型参数的数目错误;必需的1 [错误]完成阶段 [错误]/Play-2-JS-2.5/app/controllers/Java8Controller.java:74:此处不需要lambda表达式 [错误]resp->System.currentTimeMillis()-启动

出于某种原因,它认为在
CompletionStage getLatency
部分应该只有一个而不是两个,而且出于某种原因,它不喜欢lambda表达式,即使新api替换之前的语法在Play 2.4中成功运行

我试着切换回旧的调用,以显示在中的内容,但它并没有提供任何更好的结果。已经在谷歌上搜索了一段时间,但不知道如何处理这个问题。如有任何建议,并附有可能的例子,将不胜感激

更换

final CompletionStage<WSResponse, Long> getLatency = resp ->
        System.currentTimeMillis() - start;
final CompletionStage getLatency=resp->
System.currentTimeMillis()-启动;

final函数getLatency=resp->System.currentTimeMillis()-start;
由于
接口接受
java.util.Function

希望这有帮助。

祝你好运

很高兴知道这有帮助
final CompletionStage<WSResponse, Long> getLatency = resp ->
        System.currentTimeMillis() - start;
final Function<WSResponse, Long> getLatency = resp -> System.currentTimeMillis() - start;