2

我正在尝试学习 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();
}
4

1 回答 1

4

Java 语言设计者使用这种方法而不是添加可变和不可变列表子类型来避免集合类型层次结构的爆炸。请参阅Java 集合 API 设计常见问题解答

于 2013-09-07T03:31:45.180 回答