Java 8 Java 8播放2.5错误-类型参数和lambda表达式的数量错误此处不应出现错误
我正在尝试从2.4版升级到2.5版。使用中的指南,我将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.
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;