streams - ¿Cómo crear un scala.collection.immutable.Seq desde una lista de Java en Java?
akka wikipedia (3)
Estoy tratando de hacer que Akka entre en mi proyecto Java, y estoy colgado de un pequeño problema con los tipos de Seq de Scala. Puedo convertir mi Lista de ActorRef de Java en scala.collection.Seq, pero la API de Akka que estoy tratando de usar requiere scala.collection.immutable.Seq. ¿Cómo puedo hacer uno?
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;
}
}
La documentación akka Java para enrutadores , así como el ScalaDoc para CyclicIterator sugieren que el constructor CyclicIterator toma una lista.
Puede usar scala.collection.JavaConversions.asScalaBuffer
para convertir la List
Java en un Buffer
Scala, que tiene un método toList
, y una List
Scala es un collection.immutable.Seq
.
Puedes usar:
scala.collection.JavaConverters.collectionAsScalaIterableConverter(workers).asScala().toSeq()