在对List做remove操作时抛出java.lang.UnsupportedOperationException
原因: 那个List是通过Arrays.asList()这个方法构造的,一直以为返回的就是一个ArrayList,今天查看了源码发现错了,是Arrays里面一个名叫ArrayList的私有类。 [code] public class Arrays { ... public static ...
原因:
那个List是通过Arrays.asList()这个方法构造的,一直以为返回的就是一个ArrayList,今天查看了源码发现错了,是Arrays里面一个名叫ArrayList的私有类。
[code]
public class Arrays {
...
public static List asList(T... a) {
return new ArrayList(a);
}
private static class ArrayList extends AbstractList
implements RandomAccess, java.io.Serializable
{
...
}
...
}
[/code]
它也继承自AbstractList,只是没有实现remove方法,而AbstractList类中remove方法默认是抛java.lang.UnsupportedOperationException异常的。
[code]
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {
...
public E remove(int index) {
throw new UnsupportedOperationException();
}
...
}
[/code]
评论交流
暂无评论,欢迎留下你的想法