为什么AbstractList的设计使得某些方法总是抛出UnsupportedException?

时间:2013-09-07 03:18:13

标签: java

我正在尝试学习AbstractList我发现一些方法总是抛出一个异常,我的问题是为什么设计这样?

 /**
 * {@inheritDoc}
 *
 * <p>This implementation always throws an
 * {@code UnsupportedOperationException}.
 *
 * @throws UnsupportedOperationException {@inheritDoc}
 * @throws ClassCastException            {@inheritDoc}
 * @throws NullPointerException          {@inheritDoc}
 * @throws IllegalArgumentException      {@inheritDoc}
 * @throws IndexOutOfBoundsException     {@inheritDoc}
 */
public E set(int index, E element) {
    throw new UnsupportedOperationException();
}

public void add(int index, E element) {
    throw new UnsupportedOperationException();
}

1 个答案:

答案 0 :(得分:4)

Java语言设计者使用这种方法而不是添加可变和不可变的列表子类型,以避免集合类型层次结构中的爆炸。请参阅Java Collections API Design FAQ