Arrays.asList() et tableaux primitifs
Lorsque vous tentez de convertir un tableau de données primitives en une liste à l'aide de Arrays.asList( ), on peut rencontrer des incohérences. Cet article explore le problème et propose des solutions.
Explication du problème
La méthode Arrays.asList() accepte les arguments variables qui représentent un tableau. Cependant, il ne prend pas en charge les types de données primitifs tels que int[], contrairement aux types de référence comme Integer[]. En conséquence, le deuxième exemple fourni :
int[] ints = new int[] {1,2,3,4,5}; List<Integer> list = Arrays.asList(ints);
renvoie une List
Autoboxing
L'Autoboxing, qui convertit les types de données primitifs en leurs homologues wrapper, ne s'applique pas aux tableaux de primitives. Par conséquent, le tableau int[] n'est pas automatiquement converti en tableau Integer[].
Solution
Pour résoudre ce problème, on peut exploiter des bibliothèques tierces telles que comme méthode com.google.common.primitive.Ints.asList de Guava. Il crée une liste de valeurs encadrées à partir d'un tableau primitif. Alternativement, on peut créer manuellement un tableau Integer[] et attribuer des valeurs à partir du tableau int[], c'est-à-dire
int[] ints = new int[] {1,2,3,4,5}; Integer[] integers = new Integer[ints.length]; for (int i = 0; i < ints.length; i++) { integers[i] = ints[i]; } List<Integer> list = Arrays.asList(integers);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!