Java 为不可修改列表实现迭代器
我正在基于AbstractSequentialList实现一个不可修改的列表。现在,根据Oracle的文档: 对于不可修改的列表,程序员只需实现该列表 迭代器的hasNext、next、hasPrevious、previous和index方法 问题是,似乎我必须为remove、set和add方法提供一个实现,尽管由于列表的不可修改性,这些方法根本不需要,否则编译器会抱怨,因为这些方法没有实现 那么,我是做错了什么,还是这才是真正的出路?我应该实现这样的方法并在其中抛出某种异常吗 提前非常感谢, 抛出以指示不支持请求的操作 e、 gJava 为不可修改列表实现迭代器,java,list,iterator,Java,List,Iterator,我正在基于AbstractSequentialList实现一个不可修改的列表。现在,根据Oracle的文档: 对于不可修改的列表,程序员只需实现该列表 迭代器的hasNext、next、hasPrevious、previous和index方法 问题是,似乎我必须为remove、set和add方法提供一个实现,尽管由于列表的不可修改性,这些方法根本不需要,否则编译器会抱怨,因为这些方法没有实现 那么,我是做错了什么,还是这才是真正的出路?我应该实现这样的方法并在其中抛出某种异常吗 提前非常感谢,
只需在不需要实现的方法上抛出一个
UnsupportedOperationException
。如迭代器
/列表迭代器
接口文档所述
抛出:UnsupportedOperationException-如果未执行删除操作
此列表迭代器支持
e、 g
@Override
public void remove() {
throw new UnsupportedOperationException("Cannot remove from unmodifiableList");
}
@Override
public void remove() {
throw new UnsupportedOperationException("Not supported yet.");
}