Java 类SubList()必须被称为抽象或实现抽象方法';列表迭代器';在';列表';

Java 类SubList()必须被称为抽象或实现抽象方法';列表迭代器';在';列表';,java,intellij-idea,Java,Intellij Idea,Intellij抛出这个错误,但我正在实现它。这是基于ArrayList的主类MyList的一个子类 类子列表()必须被称为抽象或在“列表”中实现抽象方法“listIterator” private class SubList extends MyList<AnyType> { private List<AnyType> original; private int offset; private int size; public MyL

Intellij抛出这个错误,但我正在实现它。这是基于ArrayList的主类MyList的一个子类

类子列表()必须被称为抽象或在“列表”中实现抽象方法“listIterator”

private class SubList extends MyList<AnyType>
{
    private List<AnyType> original;
    private int offset;
    private int size;


    public MyList<AnyType> subList( int from, int to )
    {
        return new SubList( this, from, to );
    }

    public SubList( int from, int to )
    {  if( from < 0 || to > MyList.this.size( ) ) throw new IllegalArgumentException( from + " " + to + " " + MyList.this.size( ) );
        original = MyList.this; offset = from; size = to - from; }

    public SubList( SubList sub, int from, int to )
    { if( from < 0 || to > sub.size( ) ) throw new IllegalArgumentException( from + " " + to + " " + sub.size( ) );
        original = sub.original; offset = sub.offset + from; size = to - from; }

    public int size( )
    { return size; }

    public AnyType get( int idx )
    { return original.get( offset + idx ); }

    public AnyType set( int idx, AnyType x )
    { return original.set( offset + idx, x ); }

    public boolean add( AnyType x )
    { throw new UnsupportedOperationException( ); }

    public AnyType remove( int idx )
    { throw new UnsupportedOperationException( ); }

    public boolean remove( Object x )
    { throw new UnsupportedOperationException( ); }

    public boolean contains( Object x )
    { for( AnyType item : this ) if( item.equals( x ) ) return true; return false;  }


    public ListIterator<AnyType> listIterator( int idx )
    { return original.listIterator( offset + idx ); }

    public Iterator<AnyType> iterator( )
    { return original.listIterator( offset ); }
}
私有类子列表扩展了MyList
{
私人名单原件;
私有整数偏移;
私有整数大小;
公共MyList子列表(int-from,int-to)
{
返回新的子列表(此、从、到);
}
公共子列表(int-from,int-to)
{if(从<0 | |到>MyList.this.size())抛出新的IllegalArgumentException(从+''+到+''+MyList.this.size());
original=MyList.this;offset=from;size=to-from;}
公共子列表(子列表子、整型自、整型至)
{if(从<0 | |到>sub.size())抛出新的IllegalArgumentException(从+''+到+''+sub.size());
原始=sub.original;偏移=sub.offset+from;大小=to-from;}
公共整数大小()
{返回大小;}
公共AnyType get(int-idx)
{return original.get(offset+idx);}
公共任意类型集(int idx,AnyType x)
{返回原始.set(offset+idx,x);}
公共布尔添加(任意类型x)
{抛出新的UnsupportedOperationException();}
公共AnyType删除(int-idx)
{抛出新的UnsupportedOperationException();}
公共布尔删除(对象x)
{抛出新的UnsupportedOperationException();}
公共布尔包含(对象x)
{for(AnyType项:this)if(item.equals(x))返回true;返回false;}
公共ListIterator ListIterator(int idx)
{return original.listIterator(offset+idx);}
公共迭代器迭代器()
{返回原始.listIterator(偏移量);}
}

列表中有两种方法
:和。您似乎覆盖了前者,但没有覆盖后者。

能否在
MyList
中显示
公共列表迭代器列表迭代器(int idx)
的签名?相同吗?
列表中有两种方法:
列表迭代器(int)
列表迭代器()
。我们确实需要
MyList
的代码来确定问题所在。令人惊讶的是,您的注释中的两个名称与源代码中的两个名称不匹配。iterator()与listIterator()不同@Jägermeister:OP还有一个
列表迭代器
方法。@augray我在
子列表
类中没有看到它。现在,它可能在
MyList
中被重写,但我对此表示怀疑。我添加了没有参数的方法,并且能够编译。