Java 无法从我的界面中找到方法

Java 无法从我的界面中找到方法,java,interface,Java,Interface,我创建了一个名为LLIterator的接口,该接口扩展了迭代器并向其添加了两个方法,当我试图在我的一个类中使用它时,我无法编译它。这是我得到的。 我的自定义界面如下所示: import java.util.Iterator; public interface LLIterator<T> extends Iterator<T>{ boolean hasNext(); T next(); vo

我创建了一个名为LLIterator的接口,该接口扩展了迭代器并向其添加了两个方法,当我试图在我的一个类中使用它时,我无法编译它。这是我得到的。 我的自定义界面如下所示:

      import java.util.Iterator;

        public interface LLIterator<T> extends Iterator<T>{

        boolean hasNext();

        T next();

        void remove();

        void addBefore(T element);

        void addAfter(T element);

        }
import java.lang.StringBuilder;
import java.util.NoSuchElementException;
import java.util.Iterator;
import java.util.ArrayList;


/**
 * A class to represent a linked list of nodes.
 */
public class LinkedList<T> implements Iterable<T>{
  /** the first node of the list, or null if the list is empty */
  private LLNode<T> first;

 /** some codes here  

 @Override
  public LLIterator<T> iterator() {
    return new LinkedListIterator();
  }

  private class LinkedListIterator implements LLIterator<T>{
    LLNode<T> nodeptr = first;
    final LinkedList<T> list = getList();

   @Override
    public void addBefore(T element){
      if(nodeptr == first || list.isEmpty()){
        throw new NoSuchElementException();
      }
      LLNode<T> newnode = new LLNode<T>(element, null);
      newnode.setNext(nodeptr);
    }

    @Override
    public void addAfter(T element){
      LLNode<T> newnode;
      if(nodeptr == first || list.isEmpty()){
        newnode = new LLNode<T>(element, null);
        list.setFirst(newnode);
      }
      newnode = new LLNode<T>(element, null);
      newnode.setNext(nodeptr.getNext());
      nodeptr.setNext(newnode);
    }
  }
这是我另一节课的一部分:

 public void addFollowingWord(String word){
    Iterator<WordData> iterator = list.iterator();
    WordData current = iterator.next();
    while(iterator.hasNext()){
      if(current.getWord().equals(word)){
        current.incrementCount();
      }
      else if(current.getWord().compareTo(word) < 0){
        current = iterator.next();
      }
      else if(current.getWord().compareTo(word) > 0){
        WordData newword = new WordData(word);
        iterator.addBefore(newword);
      }
    }
    if(!iterator.hasNext()){
     WordData newword = new WordData(word);
      iterator.addAfter(newword);
  }
}
public void addfollowing字(字符串字){
迭代器迭代器=list.Iterator();
WordData current=iterator.next();
while(iterator.hasNext()){
if(current.getWord().equals(word)){
current.incrementCount();
}
else if(current.getWord().compareTo(word)<0){
current=iterator.next();
}
else if(current.getWord().compareTo(word)>0){
WordData newword=新的WordData(word);
iterator.addBefore(newword);
}
}
如果(!iterator.hasNext()){
WordData newword=新的WordData(word);
iterator.addAfter(newword);
}
}

我很困惑,我是在什么地方犯了错误还是遗漏了什么?

您无法访问自定义界面上的方法,因为它被转换为
迭代器。更新
iterator()
方法以返回子接口:

@Override
public LLIterator<T> iterator() {
    return new LinkedListIterator();
}
@覆盖
公共编译器迭代器(){
返回新的LinkedListIterator();
}

您无法访问自定义界面上的方法,因为它被转换为
迭代器。更新
iterator()
方法以返回子接口:

@Override
public LLIterator<T> iterator() {
    return new LinkedListIterator();
}
@覆盖
公共编译器迭代器(){
返回新的LinkedListIterator();
}

发布你的课程的完整代码请看一看,非常感谢发布你的课程的完整代码请看一看,非常感谢你花时间回答我的问题,但是在我像你说的那样编辑之后,它似乎不起作用了。。。。你能看看我发布的新代码吗?你仍然在使用
迭代器
界面。您需要使用
illiterator
。sry先生,我在这里没有更改,但我在代码中做了更改,仍然给了我相同的错误。@Rio我说的是这一行:
Iterator Iterator=list.Iterator()非常感谢您抽出时间回答我的问题,但在我按您所说的那样编辑它之后,它似乎不起作用。。。。你能看看我发布的新代码吗?你仍然在使用
迭代器
界面。您需要使用
illiterator
。sry先生,我在这里没有更改,但我在代码中做了更改,仍然给了我相同的错误。@Rio我说的是这一行:
Iterator Iterator=list.Iterator()