Java Iterator实现编译错误:不覆盖抽象方法remove()
发布时间:2020-05-25 01:12:30 所属栏目:Java 来源:互联网
导读:为什么我会收到以下编译错误: LRIterator不是抽象的,不会覆盖java.util.Iterator中的抽象方法remove() 注意,实现是针对链表 public Iterator iterator(){ return new LRIterator() ;}private class LRIterator implements Iterator{ private
|
为什么我会收到以下编译错误: LRIterator不是抽象的,不会覆盖java.util.Iterator中的抽象方法remove() 注意,实现是针对链表 public Iterator iterator()
{
return new LRIterator() ;
}
private class LRIterator implements Iterator
{
private DLLNode place ;
private LRIterator()
{
place = first ;
}
public boolean hasNext()
{
return (place != null) ;
}
public Object next()
{
if (place == null) throw new NoSuchElementException();
return place.elem ;
place = place.succ ;
}
}
解决方法Java 8在Java 8中, Java 7及以下版本 因为Iterator接口有一个名为remove()的方法,您必须实现该方法才能说明您已经实现了Iterator接口. 如果你没有实现它,那么类“缺少”一个方法实现,这对于抽象类,即将某些方法的实现推迟到子类的类来说是可以的. 文档可能看起来令人困惑,因为它说remove()是一个“可选操作”.这只意味着您不必实际能够从底层实现中删除元素,但仍需要实现该方法.如果您不想从底层集合中删除任何内容,则可以像下面这样实现: public void remove() {
throw new UnsupportedOperationException();
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
