5
votes

Convertir le tableau en ArrayList

Comment puis-je convertir Array en ArrayList dans Kotlin?

Type inference failed. Expected type mismatch: inferred type is kotlin.collections.ArrayList<Array<String>!> /* = java.util.ArrayList<Array<String>!> */ but kotlin.collections.ArrayList<String>? /* = java.util.ArrayList<String>? */ was expected

Je reçois cette erreur:

Erreur

var categoryList : ArrayList<String>?=null
val list = arrayOf("None", "ABC")
categoryList = ArrayList(Arrays.asList(list))


3 commentaires

Double possible de Créer une ArrayList à partir d'un tableau


@Roland Désolé mon mal, il l'a marqué comme java d'abord, j'aurais dû voir le code complet correctement. Dans ce cas, sa copie de Convertir un tableau en liste dans Kotlin


@ManoharReddy pas de problème ... je viens de voir cette modification après mon commentaire ;-) ... enfin ... certainement similaire ... mais ... il définit un type ici à l'avance et se trompe là-bas ... le même le problème est en dessous, mais 2 points de départ différents à mon avis ... Je cherchais vraiment une question mentionnant ce message d'erreur, mais je n'ai pas pu en trouver une ... je me demandais pourquoi l'opérateur de propagation n'était pas mentionné dans la question liée. ...


3 Réponses :


11
votes

Vous pouvez être intéressé par toCollection pour ajouter les éléments à toute collection que vous transmettez:

categoryList = ArrayList(Arrays.asList(*list))

Notez que pour résoudre votre problème spécifique, vous avez juste besoin de opérateur de propagation ( * ) . Avec le * -fix appliqué, cela aurait fonctionné aussi:

categoryList = list.toCollection(ArrayList())


1 commentaires

Peut-être êtes-vous également intéressé par < code> list.toMutableList () . cela dépend si vous avez vraiment besoin de cette ArrayList ;-)



2
votes

J'espère que cela vous aidera.

var categoryList : ArrayList<String>?=null
        val list = arrayOf("None", "ABC")
        categoryList = list.toCollection(ArrayList())


0 commentaires

1
votes

Une autre approche consiste à utiliser arrayListOf

 categoryList =arrayListOf("None", "ABC")


0 commentaires