我想实现ArrayList,它不允许用户(或程序)从中删除元素。我想保留ArrayList的其余功能。 问题是什么是更好的方法:扩展ArrayList或扩展AbstractList以及如何禁止删除(例如阴影)?
答案 0 :(得分:-2)
常见方法是抛出UnsupportedOperationException
在方法的实现中。抛出这个例外
来自不会使用的方法但是
它们是使用过的公共API的一部分。
如果你想完全实现所有方法
那么你应该使用List
接口。
否则 - 使用提供的抽象变体或
直接从期望的实现扩展
并覆盖默认行为。
答案 1 :(得分:-2)
public class NotRemovableArrayList<T> extends ArrayList<T> {
@Override
public boolean remove(Object o) {
throw new UnsupportedOperationException();
}
...
}