从我的Scala函数中,我正在调用一个Java API方法,该方法返回了CompletableFuture。我现在需要将其转换为Scala Future!我想我可以使用scala java8压缩工具来完成此工作,但是我应该使用该工具的哪个版本?我尝试使用:
“ org.scala-lang.modules”%“ scala-java8-compat”%“ 0.9.0”
我的sbt构建因
而失败找不到org.scala-lang.modules#scala-java8-compat; 0.9.0:
。我想我应该添加一个解析器,但是哪一个呢?
第二,为了使用FutureConverters.toScala,我需要访问completionStage。从哪里可以得到这个?
例如,在通话中:
var sections = new Dictionary<string, List<string>>();
foreach(var it in uploadBox.Items)
{
var item = it.ToString();
if(item.Contains("Section"))
{
var section = GetSection(item);
if(!sections.ContainsKey(section))
{
sections.Add(section, new List<string>());
}
sections[section].Add(item);
}
}
private string GetSection(string item)
{
var split = item.Split("_");
return $"{split[1]}_{split[2]}";
}
我从哪里获得此CompletionStage?
答案 0 :(得分:2)
尝试
libraryDependencies += "org.scala-lang.modules" %% "scala-java8-compat" % "0.9.0"
与
相同libraryDependencies += "org.scala-lang.modules" % "scala-java8-compat_2.12" % "0.9.0"
请注意%%
或_2.12
。
CompletionStage
是java.util.concurrent.CompletableFuture
的超类型。
因此,如果您有CompletableFuture
,就是这样。