今天用List做个小测试,发现如题的代码报错: java.lang.UnsupportedOperationException
感谢google,发现问题了。看代码:
public class Arrays {
...
public static List asList(T... a) {
return new ArrayList(a);
}
private static class ArrayList extends AbstractList
implements RandomAccess, java.io.Serializable
{
...
}
...
}
原来那个List是通过Arrays.asList()这个方法构造的,一直以为返回的就是一个ArrayList,实际上是Arrays里面一个名叫ArrayList的私有类。这个类继承自AbstractList,但并没有实现remove方法。
特此留个记号。