Kotlin: Pour la boucle doit avoir une méthode d'itérateur - est-ce un bug?
J'ai le code suivant:
public fun findSomeLikeThis(): ArrayList<T>? {
val result = Db4o.objectContainer()!!.queryByExample<T>(this as T) as Collection<T>
if (result == null) return null
return ArrayList(result)
}
Si je l'appelle comme:
var list : ArrayList<Person>? = p1.findSomeLikeThis()
for (p2 in list) {
p2.delete()
p2.commit()
}
Il me donnerait de l'erreur:
Pour la boucle doit avoir un "iterator () la méthode des"
Suis-je manqué quelque chose?
OriginalL'auteur LEMUEL ADANE | 2015-03-22
Vous devez vous connecter pour publier un commentaire.
Votre
ArrayList
est de type nullable. Donc, vous avez à résoudre ce problème. Il y a plusieurs options:ou
ou vous pouvez simplement retourner une liste vide
list?.forEach { ... }
gère les nuls (comme mentionné ci-dessus, ajouter le bloc de code autour)OriginalL'auteur naixx
J'ai aussi face à ce problème lorsque je boucle sur quelque chose qu'il n'est pas un tableau.
Exemple
C'est le cas, à cette question, mais espérons qu'il aidera
OriginalL'auteur Linh