Maison  >  Article  >  Java  >  Pourquoi est-ce que j'obtiens une exception UnsupportedOperationException lors de la modification d'une liste ?

Pourquoi est-ce que j'obtiens une exception UnsupportedOperationException lors de la modification d'une liste ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-06 03:35:02490parcourir

Why Do I Get an UnsupportedOperationException When Modifying a List?

Exception d'opération non prise en charge lors de la modification d'une liste : dévoilement de la cause première

Lors d'une tentative de modification d'une liste en ajoutant des éléments, une exception UnsupportedOperationException peut survenir. Cette exception découle de la nature immuable ou restreinte de certaines implémentations de List.

Identification de l'implémentation concernée

Une instance courante implique la List renvoyée par Arrays.asList(). Comme indiqué, cette liste est de taille fixe et interdit toute modification structurelle, y compris l'ajout et la suppression d'éléments.

Même si vous n'interagissez pas directement avec la liste depuis Arrays.asList(), le problème peut toujours survenir. en raison de la présence d'autres implémentations de liste immuables ou de celles avec des capacités de modification limitées.

Explorer les exceptions Insight

Pour comprendre la cause première, reportez-vous à la documentation de UnsupportedOperationException et List.add(). Cette dernière précise que l'opération add() est une "(opération facultative)", comme indiqué dans la documentation de la liste.

Résoudre le problème : élaborer une solution de contournement

Pour contourner le problème, envisagez de dupliquer la liste immuable dans une implémentation modifiable, telle que ArrayList :

<code class="java">seeAlso = new ArrayList<>(seeAlso);</code>

Cette approche vous permet d'effectuer des modifications telles que comme l'ajout d'éléments à la liste sans rencontrer l'exception UnsupportedOperationException.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn