La UnsupportedOperationException es una de las excepciones comunes que ocurren cuando estamos trabajando con alguna API de implementación de listas. Se lanza para indicar que la operación solicitada no es compatible.
Esta clase es miembro de Java Collections Framework.
Todos los errores de Java implementan la interfaz java.lang.Throwable o se heredan de otra clase. La jerarquía de esta Excepción es-
java.lang.Objeto
java.lang.Throwable
java.lang.Excepción
java.lang.RuntimeException
java.lang.UnsupportedOperationException
Sintaxis:
public class UnsupportedOperationException extends RuntimeException
La razón principal detrás de la aparición de este error es que el método asList de la clase java.util.Arrays devuelve un objeto de ArrayList que está anidado dentro de la clase java.util.Arrays . ArrayList extiende java.util.AbstractList y no implementa el método de agregar o quitar. Por lo tanto, cuando se llama a este método en el objeto de la lista, llama para agregar o eliminar el método de la clase AbstractList que arroja esta excepción. Además, la lista devuelta por el método asList es una lista de tamaño fijo, por lo que no se puede modificar.
El siguiente ejemplo dará como resultado una excepción de operación no admitida, ya que está tratando de agregar un nuevo elemento a un objeto de lista de tamaño fijo.
Java
import java.util.Arrays; import java.util.List; public class Example { public static void main(String[] args) { String str[] = { "Apple", "Banana" }; List<String> l = Arrays.asList(str); System.out.println(l); // It will throw java.lang.UnsupportedOperationException l.add("Mango"); } }
Producción:
Exception in thread "main" java.lang.UnsupportedOperationException at java.base/java.util.AbstractList.add(AbstractList.java:153) at java.base/java.util.AbstractList.add(AbstractList.java:111) at Example.main(Example.java:14)
Podemos resolver este problema usando una lista mutable que se puede modificar, como una ArrayList . Creamos una Lista usando el método Arrays.asList como lo estábamos usando antes y pasamos esa Lista resultante para crear un nuevo objeto ArrayList.
Java
import java.util.ArrayList; import java.util.List; import java.util.*; public class Example { public static void main(String[] args) { String str[] = { "Apple", "Banana" }; List<String> list = Arrays.asList(str); List<String> l = new ArrayList<>(list); l.add("Mango"); // modify the list for(String s: l ) System.out.println(s); } }
Apple Banana Mango
Publicación traducida automáticamente
Artículo escrito por namitachaudhary60 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA