如何基于ArrayList.util实现自定义ArrayList而无法删除元素

时间:2017-08-07 14:26:03

标签: java arraylist

我想实现ArrayList,它不允许用户(或程序)从中删除元素。我想保留ArrayList的其余功能。 问题是什么是更好的方法:扩展ArrayList或扩展AbstractList以及如何禁止删除(例如阴影)?

2 个答案:

答案 0 :(得分:-2)

常见方法是抛出UnsupportedOperationException 在方法的实现中。抛出这个例外 来自不会使用的方法但是 它们是使用过的公共API的一部分。

如果你想完全实现所有方法 那么你应该使用List接口。 否则 - 使用提供的抽象变体或 直接从期望的实现扩展 并覆盖默认行为。

答案 1 :(得分:-2)

public class NotRemovableArrayList<T> extends ArrayList<T> {
    @Override
    public boolean remove(Object o) {
        throw new UnsupportedOperationException();
    }

    ...
}