web-dev-qa-db-ja.com

Java Javaのリストからscala.collection.immutable.Seqを作成する方法は?

JavaプロジェクトでAkkaを実行させようとしています。ScalaのSeqタイプの小さな問題でハングアップしています。変換できます= Java scala.collection.SeqへのActorRefのリストですが、使用しようとしているAkka APIには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;
    }
}
28
spieden

scala.collection.JavaConversions.asScalaBufferを使用して、Java ListをScala Bufferに変換できます。これには、toListメソッドがあり、Scala Listcollection.immutable.Seqです。

38
Landei

akka Javaルーターのドキュメント および CyclicIterator のScalaDocはどちらも、CyclicIteratorコンストラクターがリストを取ることを示唆しています。

4
Emil Sit

以下を使用できます。

scala.collection.JavaConverters.collectionAsScalaIterableConverter(workers).asScala().toSeq()

1
Ben McCann