Collection接口的add(),remove()操作等 可能不被支持 ,但多半情况下会抛出异常(非一定)
理由是:
例如查看ArrayList 等的父类AbstractList 中定义的add(),remove()方法等
由此可以看出如果子类不去显式的覆盖该方法,也即不复写这些方法的话,则会抛出不受支持的操作异常
例如Arrays.asList(T... elements) 返回的是一个内部单独实现的ArrayList ,该类不支持add()和set()方法
所以如果对该方法返回的list做添加或者删除操作的话,将会抛出不受支持的操作异常
当然如果你覆盖了该方法,但并未提供任何有效的实现的话,该方法将不起任何作用,但也不抛异常。
理由是:
例如查看ArrayList 等的父类AbstractList 中定义的add(),remove()方法等
public boolean add(E e){
add(size(),e);
return ture;
}
public void add(int index,E e){
throw new UnsupportedOperationExcetpion();
}
由此可以看出如果子类不去显式的覆盖该方法,也即不复写这些方法的话,则会抛出不受支持的操作异常
例如Arrays.asList(T... elements) 返回的是一个内部单独实现的ArrayList ,该类不支持add()和set()方法
所以如果对该方法返回的list做添加或者删除操作的话,将会抛出不受支持的操作异常
当然如果你覆盖了该方法,但并未提供任何有效的实现的话,该方法将不起任何作用,但也不抛异常。