ArrayList抛java.lang.UnsupportedOperationException
我对 ArrayList 进行元素的添加和删除操作时,抛异常了。
package shali.tdl.jdk.util;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
public class ArraysTest {
/**
* 对 ArrayList 进行元素的添加和删除操作,报不支持的操作异常
*/
@Test(expected = UnsupportedOperationException.class)
public void unsupportedOperationExceptionOfAdd() {
List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5, 6);
integerList.add(7);
}
/**
* java.util.Arrays.ArrayList 没有重写 remove 方法
*/
@Test(expected = UnsupportedOperationException.class)
public void unsupportedOperationExceptionOfRemove() {
List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5, 6);
integerList.remove(0);
}
}
这里需要注意 Arrays.asList
返回的是 java.util.Arrays.ArrayList
不是 java.util.ArrayList
。
抛异常的原因是 java.util.Arrays.ArrayList
没有重写 java.util.AbstractList
的 remove
和 add
方法。
不信,我们可以看源码。
public E set(int index, E element) {
throw new UnsupportedOperationException();
}
public void add(int index, E element) {
throw new UnsupportedOperationException();
}
public E remove(int index) {
throw new UnsupportedOperationException();
}
- UnsupportedOperationException ArrayList java langunsupportedoperationexception java lang unsupportedoperationexception项目java lang unsupportedoperationexception arraylist java annotation annotationformaterror java lang java lang numberformatexception getsystenantnames java lang module classformaterror nullpointerexception jfinal java lang annotation 20230707 java lang classloader 20230711 java lang unsupportedoperationexception java exception