我正在基于AbstractSequentialList实现一个不可修改的列表。现在,根据Oracle的文档:
对于不可修改的列表,程序员只需要实现列表 iterator的hasNext,next,hasPrevious,previous和index方法。
问题在于我似乎必须提供删除,设置和添加方法的实现,尽管由于列表的不可修改性质而根本不需要这些实现,否则编译器会抱怨因为这些方法没有实现。
所以,我做错了什么,或者这是真正的方法吗?我应该实现这样的方法并在其中抛出某种异常吗?
提前多多感谢,
答案 0 :(得分:6)
在你不需要实现的方法上抛出UnsupportedOperationException
。由Iterator
/ ListIterator
接口文档https://docs.oracle.com/javase/7/docs/api/java/util/ListIterator.html#remove()
抛出:UnsupportedOperationException - 如果不执行remove操作 由此列表迭代器支持
e.g。
@Override
public void remove() {
throw new UnsupportedOperationException("Not supported yet.");
}
答案 1 :(得分:4)
http://docs.oracle.com/javase/6/docs/api/java/lang/UnsupportedOperationException.html
抛出以指示不支持所请求的操作。
e.g。
@Override
public void remove() {
throw new UnsupportedOperationException("Cannot remove from unmodifiableList");
}