Incapable d'itérer Java Liste en Scala
Je suis en utilisant le Java Twitter4J de la bibliothèque dans un projet Scala.
Je vais appeler la méthode
twitter.getFriendsStatuses()
Cette méthode renvoie une liste de twitter4j.Les objets utilisateur contenant les statuts.
J'essaie de faire une itération sur eux et il va dans une boucle infinie sur le premier élément:
val users:List[User] = twitter.getFriendsStatuses(userId, paging.getSinceId())
while( users.iterator.hasNext() ) {
println(users.iterator.next().getStatus())
}
Des idées?
Vous devez vous connecter pour publier un commentaire.
Je suppose que
users.iterator
produit le nouvel itérateur chaque fois qu'il est évalué. Essayez ceci:Si vous utilisez Scala 2.8, vous pouvez utiliser JavaConversion pour convertir Java collection à la Scala de collecte automatiquement.
Ex.
Quel est le problème avec juste
ou même
ou, si vous êtes inquiet au sujet de la traversée de la collection deux fois
OIE: Pourquoi voulez-vous gérer l'itération de vous-même (et, éventuellement, de faire des erreurs), quand vous pouvez simplement laisser quelqu'un d'autre faire le travail pour vous?
view
Je préfère scalaj-collection à la scala.collection.JavaConversions. Cela rend les conversions explicites:
Disponible ici: https://github.com/scalaj/scalaj-collection
import scala.collection.JavaConverters._
vous donnera explicite.asScala
les conversions si vous le souhaitez.Je suggère d'utiliser
scala.collection.JavaConverters._
et ajoutez simplement
.asScala
pour chaque objet que vous souhaitez effectuer une itération