Comment créer un scala.collection.immuable.Seq partir d'une Liste sur Java en Java?
Je vais essayer d'obtenir Akka aller dans mon projet Java, et je suis accroché sur un petit problème avec la Seq type(s) de Scala. Je suis en mesure de convertir mon Java Liste de ActorRef en scala.collection.Seq, mais Akka API je suis en train d'utiliser requiert l'un de la scala.collection.immuable.Seq. Comment puis-je le faire?
Code:
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;
}
}
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
scala.collection.JavaConversions.asScalaBuffer
pour convertir le JavaList
à un ScalaBuffer
, qui a untoList
méthode, et un ScalaList
est uncollection.immutable.Seq
.La akka documentation de Java pour les routeurs ainsi que la ScalaDoc pour CyclicIterator les deux suggèrent que la CyclicIterator constructeur prend une Liste.
Vous pouvez utiliser:
scala.collection.JavaConverters.collectionAsScalaIterableConverter(workers).asScala().toSeq()