Comment convertir un liste de chaîne en un tablea ? Le code suivant renvoie une erreur.
public static void main(String[] args) {
List<String> strlist = new ArrayList<String>();
strlist.add("sdfs1");
strlist.add("sdfs2");
String[] strarray = (String[]) strlist.toArray();
System.out.println(strarray);
}
Erreur:
Exception in thread "main" Java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
at test.main(test.Java:10)
Tu veux
String[] strarray = strlist.toArray(new String[0]);
Voir ici pour la documentation et notez que vous pouvez également appeler cette méthode de telle sorte qu'elle remplisse le tableau transmis, plutôt que de l'utiliser pour déterminer le type à renvoyer. Notez également que, si vous imprimez votre tableau, vous préféreriez peut-être
System.out.println(Arrays.toString(strarray));
puisque cela va imprimer les éléments réels.
public static void main(String[] args) {
List<String> strlist = new ArrayList<String>();
strlist.add("sdfs1");
strlist.add("sdfs2");
String[] strarray = new String[strlist.size()]
strlist.toArray(strarray );
System.out.println(strarray);
}
List.toArray()
renvoie nécessairement un tableau d'objets. Pour obtenir un tableau de String, vous devez utiliser la syntaxe de transtypage:
String[] strarray = strlist.toArray(new String[0]);
Voir le javadoc pour Java.util.List pour plus.
J'ai conçu et mis en œuvre Dollar pour ce type de tâches:
String[] strarray= $(strlist).toArray();
String [] strarray = strlist.toArray (new String [0]);
si vous voulez que la liste soit convertie en chaîne, utilisez StringUtils.join (slist, '\ n');
espérons que cela pourra aider quelqu'un:
Liste liste = ..;
String [] stringArray = list.toArray (new String [list.size ()]);
excellente réponse à partir d'ici: https://stackoverflow.com/a/4042464/1547266