![](/img/trans.png)
[英]How can I fix mismatch error in scala where the found : Seq[scala.collection.immutable.Seq required: scala.collection.Seq?
[英]How to create a scala.collection.immutable.Seq from a Java List in Java?
我试图让 Akka 进入我的 Java 项目,但我对来自 Scala 的 Seq 类型的一个小问题感到困惑。 I'm able to convert my Java List of ActorRef into a scala.collection.Seq, but the Akka API I'm trying to use requires a scala.collection.immutable.Seq. 我怎样才能做一个?
代码:
static class Router extends UntypedLoadBalancer {
private final InfiniteIterator<ActorRef> workers;
public Router(List<ActorRef> workers) {
Seq workerSeq = asScalaBuffer(workers);
// how to get from the scala.collection.Seq above to the instance of
// scala.collection.immutable.Seq required by CyclicIterator below?
this.workers = new CyclicIterator<ActorRef>();
}
public InfiniteIterator<ActorRef> seq() {
return workers;
}
}
You can use scala.collection.JavaConversions.asScalaBuffer
to convert the Java List
to a Scala Buffer
, which has a toList
method, and a Scala List
is a collection.immutable.Seq
.
路由器的 akka Java 文档以及 CyclicIterator 的ScalaDoc都建议 CyclicIterator 构造函数采用 List。
您可以使用:
scala.collection.JavaConverters.collectionAsScalaIterableConverter(workers).asScala().toSeq()
你可以试试这个:
scala.collection.JavaConverters.asScalaIteratorConverter(list.iterator()).asScala().toSeq();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.