31

私はJavaプロジェクトでAkkaを動かそうとしていますが、ScalaのSeqタイプに関する小さな問題に悩まされています。ActorRefのJavaリストをscala.collection.Seqに変換できますが、使用しようとしているAkkaAPIには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;
    }
}
4

4 に答える 4

45

を使用scala.collection.JavaConversions.asScalaBufferして、Javaをメソッドを持つListScalaに変換できます。Scalaはです。BuffertoListListcollection.immutable.Seq

于 2011-07-22T06:50:45.210 に答える
4

CyclicIterator のScalaDocだけでなく、ルーターのakka Java ドキュメントも、CyclicIterator コンストラクターが List を取ることを示唆しています。

于 2011-07-22T02:25:15.587 に答える