异常:java.lang.UnsupportedOperationException
场景模拟:
@Test
public void testList(){
Student student = new Student();
student.setAge("18");
student.setName("张三");
student.setNumber("001");
List<Student> studentList = Collections.singletonList(student);
studentList.add(student);
}
原因: studentList是被创建的单例对象、单例对象在系统中是唯一的,不能被修改。
源码:singletonList()方法的源码
public static <T> List<T> singletonList(T o) {
return new SingletonList<>(o);
}
私有化构造方法。私有创建自身对象。
private static class SingletonList<E>
extends AbstractList<E>
implements RandomAccess, Serializable {
...
}
若依然需要studentList允许修改、只需改变创建List的方式即可:
List<Student> studentList = new ArrayList<>();
本文探讨了在Java中如何处理Singleton List遇到的UnsupportedOperationException,通过实例说明了为何这种异常出现,并提供了使用ArrayList替代singletonList以实现可修改的List的解决方案。
701

被折叠的 条评论
为什么被折叠?



