如何从Java中的Java List创建scala.collection.immutable.Seq? [英] How to create a scala.collection.immutable.Seq from a Java List in Java?
问题描述
我正在尝试让Akka进入我的Java项目,并且我在Scala上使用Seq类型的小问题。我能够将我的ActorRef的Java List转换为scala.collection.Seq,但我尝试使用的Akka API需要一个scala.collection.immutable.Seq。如何制作?
I'm trying to get Akka going in my Java project, and I'm hung up on a small issue with the Seq type(s) from Scala. 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. How can I make one?
代码:
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;
}
}
推荐答案
你可以使用 scala.collection.JavaConversions.asScalaBuffer
将Java 列表
转换为Scala 缓冲区
,其中包含 toList
方法,而Scala 列表
为 collection.immutable.Seq
。
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
.
这篇关于如何从Java中的Java List创建scala.collection.immutable.Seq?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!