2011-07-22 18 views
23

Estoy tratando de poner en marcha Akka en mi proyecto Java, y estoy colgado de un pequeño problema con los tipos Seq de Scala. Puedo convertir mi Lista de Java de ActorRef en scala.collection.Seq, pero la API de Akka que estoy tratando de usar requiere un scala.collection.immutable.Seq. ¿Cómo puedo hacer uno?Cómo crear un scala.collection.immutable.Seq a partir de una lista de Java en Java?

Código:

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

Respuesta

33

Se puede utilizar para convertir el scala.collection.JavaConversions.asScalaBuffer Java List a un Buffer Scala, que cuenta con un método toList, y una List Scala es un collection.immutable.Seq.

+0

Escogió este ya que respondió mi pregunta específica más de cerca. La línea que terminé fue: nuevo CyclicIterator ((Seq ) asScalaBuffer (workers) .toList()); – spieden

1

Se puede utilizar:

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

Cuestiones relacionadas