2011-07-22 14 views
23

Próbuję uruchomić Akka w moim projekcie Java i odkładam słuchawkę na mały numer z typem Seq od Scala. Jestem w stanie przekonwertować moją listę Java ActorRef na scala.collection.Seq, ale API Akka, którego próbuję użyć, wymaga pliku scala.collection.immutable.Seq. Jak mogę to zrobić?Jak utworzyć plik scala.collection.immutable.Seq z listy Java w języku Java?

Kod:

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; 
    } 
} 

Odpowiedz

33

scala.collection.JavaConversions.asScalaBuffer można użyć do konwersji Java List do Scala Buffer, która ma metodę toList oraz Scala List jest collection.immutable.Seq.

+0

Wybrałem tę, ponieważ bardziej odpowiadała na moje konkretne pytanie. Linia, którą otrzymałem, to: nowy CyclicIterator ((Seq ) asScalaBuffer (pracownicy) .toList()); – spieden

1

Można użyć:

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

Powiązane problemy